List<Person> persons = gson.fromJson(jsonArrayString, type);中的persons .size正常,但是里面的属性都是null
时间: 2024-05-06 21:15:33 浏览: 169
这种情况通常是因为 JSON 字符串中的属性名与 Java 对象中的属性名不一致导致的。可以尝试在 Java 对象中使用 @SerializedName 注解来指定 JSON 字符串中对应属性的名称,示例如下:
```
public class Person {
@SerializedName("name")
private String mName;
@SerializedName("age")
private int mAge;
// 其他属性和方法
}
```
在这个例子中,@SerializedName("name") 表示 JSON 字符串中的 "name" 属性对应的是 Java 对象中的 mName 属性;@SerializedName("age") 表示 JSON 字符串中的 "age" 属性对应的是 Java 对象中的 mAge 属性。这样做可以让 Gson 在解析 JSON 字符串时正确地将属性值赋给 Java 对象中的对应属性。
相关问题
java gson解析json数组
Gson是一个用于处理JSON数据的Java库,可以用来解析JSON数组。要使用Gson解析JSON数组,首先需要创建一个Gson对象,然后使用fromJson()方法将JSON数组转换为Java对象。
假设有一个JSON数组如下:
```json
[
{"name": "Tom", "age": 25},
{"name": "Jerry", "age": 30}
]
```
首先创建一个Java类来表示上面的JSON对象:
```java
public class Person {
private String name;
private int age;
// 省略getters和setters
}
```
然后使用Gson解析JSON数组:
```java
Gson gson = new Gson();
String json = "上面的JSON数组";
Person[] persons = gson.fromJson(json, Person[].class);
```
现在,persons数组中就包含了两个Person对象,分别表示Tom和Jerry。我们可以通过遍历数组来访问每一个对象的属性:
```java
for (Person person : persons) {
System.out.println(person.getName() + " " + person.getAge());
}
```
以上就是使用Gson解析JSON数组的简单示例。通过Gson,我们可以方便地将JSON数据转换为Java对象,从而方便地进行数据操作和处理。
scala 2.2 gson解析json转成任意bean代码
在Scala 2.12中使用Gson解析JSON并将其转换为任意Bean对象的示例代码如下:
```scala
import com.google.gson.Gson
case class Person(name: String, age: Int)
val json = """{"name": "Alice", "age": 30}"""
val gson = new Gson()
val person: Person = gson.fromJson(json, classOf[Person])
println(person)
```
这个示例代码将JSON字符串`{"name": "Alice", "age": 30}`解析为一个`Person`对象,然后打印出来。在这个例子中,我们使用了Gson的`fromJson`方法来将JSON解析为一个`Person`对象。我们还使用了`classOf`来获取Person类的实际类型。
如果你想解析任意类型的Bean对象,可以使用Gson的`TypeToken`类来获取泛型类型的实际类型。例如,如果你想解析一个`List[Person]`类型的JSON字符串,可以按照下面的方式使用`TypeToken`:
```scala
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
case class Person(name: String, age: Int)
val json = """[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 40}]"""
val gson = new Gson()
val personType = new TypeToken[List[Person]] {}.getType()
val persons: List[Person] = gson.fromJson(json, personType)
println(persons)
```
这个示例代码将JSON字符串`[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 40}]`解析为一个`List[Person]`对象,然后打印出来。在这个例子中,我们使用了Gson的`fromJson`方法来将JSON解析为一个`List[Person]`对象。我们还使用了`TypeToken`来获取泛型类型`List[Person]`的实际类型。
希望这可以帮助到你!
阅读全文