Android 解析 json 具有未知属性名称的列表

Android parse json list with unknown attribute names

我需要解析一个 json 结构如下:

{
    "names": {
        "nameOne": {
            "item": "my item"
        },
        "nameOther": {
            "item": "my item 2"
        },
        ... more elements with no prevously known attribute name
    }
}

如果我不知道有多少 nameOne, nameOther...nameX 存在,我如何检索它?我的问题是建模 json,所以我不能使用 SerializedName。我认为可能存在类似 hashmap 的东西来存储这些对象。

这是无效的 JSON 结构。无论如何你可以检查这个

How to parse JSON Array (Not Json Object) in Android

对于解析 JSON 列表来说,列表中有多少元素并不重要。对列表元素执行简单的 for 循环,瞧。或者甚至更好地使用创建类似这样的东西来解析响应:

public class Foo {
private List<Names> objects;
}

你可以在这里使用serializable

您可以遍历 jsonObject 的键并将它们添加到地图

Object obj = new JSONParser().parse(new FileReader("JSONExample.json"));

JSONObject jo = (JSONObject) obj;

Iterator<String> keys = jo.keys();

while(keys.hasNext()) {
    String key = keys.next();
    if (jo.get(key) instanceof JSONObject) {
          // do something with jsonObject here      
    }
}

像这样使用

    @Expose
    @SerializedName("names")
    private HashMap<String, String> map;

地图键将包含 'nameOne,.......'

使用Gson作为json解析