我有JSON:
{
"Temperature": {
"Name": "Temperature",
"Value": "26.19",
"Unit": "C"
},
"Humidity": {
"Name": "Humidity",
"Value": "29.38%",
"Unit": "%"
}
}
我希望将其保存到相同类型的对象列表中。这是我的班级:
public class Measurement {
private String name;
private String value;
private String unit;
public Measurement(String name, String value, String unit){
this.name = name;
this.value = value;
this.unit = unit;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
public String getUnit() {
return unit;
}
@Override
public String toString(){
return name + " = " + value + unit;
}
}
我已经尝试过像这样的gson:
Type measurementListType = new TypeToken<ArrayList<Measurement>>(){}.getType();
List<Measurement> msm = new Gson().fromJson(json, measurementListType);
但这会产生错误
预计BEGIN_ARRAY但是BEGIN_OBJECT
如果JSON只是一个例子,它可以有任意数量的对象,但它们都必须遵循相同的结构。我怎样才能将它们解析成List?非常感谢任何帮助。
答案 0 :(得分:1)
对于那个你显示为对象数组的JSON,它需要被方括号括起来,如下所示:
[{
"Temperature": {
"Name": "Temperature",
"Value": "26.19",
"Unit": "C"
},
"Humidity": {
"Name": "Humidity",
"Value": "29.38%",
"Unit": "%"
}
}]
从那里你可以在数组中有一个或多个对象。