Android JSON解析多个对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android JSON解析多个对象相关的知识,希望对你有一定的参考价值。

我有这样的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?任何帮助是极大的赞赏。

答案

对于那个JSON,你显示的是一个对象数组,它需要被方括号括起来,如下所示:

[{
    "Temperature": {
        "Name": "Temperature",
        "Value": "26.19",
        "Unit": "C"
    },
    "Humidity": {
        "Name": "Humidity",
        "Value": "29.38%",
        "Unit": "%"
    }
}]

从那里你可以在数组中有一个或多个对象。

以上是关于Android JSON解析多个对象的主要内容,如果未能解决你的问题,请参考以下文章