使用GSON和动态密钥解析JSON响应

时间:2017-04-05 07:08:26

标签: android json gson

这就是我的JSON的样子,我必须解析JSON,如何使用GSON完成

{
  "data": {
    "a": {
      "abc": {
        "c": "d"
      }
    }
  }
}

其中“a”是动态密钥,可能随时变化。我现在无法找到解决方案

2 个答案:

答案 0 :(得分:1)

<强>模型

public class Model {

    private HashMap<String, String> data;

    public Model() {
    }
}

使用Gson&amp; amp;将json字符串转换为Hashmap从hashmap准备数据

Gson gson = new Gson();
Type typeHashMap = new TypeToken<Map<String, String>>(){}.getType();
Map<String,String> map = gson.fromJson(YOUR_JSON, typeHashMap);

Set<Map.Entry<String, String>> entrySet = data.entrySet();

    Iterator iterator = entrySet.iterator ();

    for(int j = 0; j < entrySet.size(); j++) {
        try {
            Map.Entry entry = (Map.Entry) iterator.next();
            String key = entry.getKey().toString();
            String value = entry.getValue().toString();
            //Add it to your list
        }
        catch(NoSuchElementException e) {
            e.printStackTrace();
        }
        break;
    }

答案 1 :(得分:1)

我不确定你是否知道内部部件abc。如果您知道,那么您肯定可以使用GSON。您必须为内部已知对象创建类,如下所示:

public class ABC {
public C abc;}

然后为C创建类:

public class C {
public String c;}

然后只需将ABC类作为hashmap值传递如下:

public HashMap<String, ABC> a;