Android JSON解析多个对象

问题描述 投票:0回答:1

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

android json gson
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.