Gson对象通过对象解析每次具有不同名称的对象

时间:2016-01-04 09:14:05

标签: java json gson

我必须使用以下JSON格式的服务来使用数据:

{
  "field1": {
    "key": "value"
  },
  "complexfield": {
    "name1": {
      "key": "value"
    },"name2": {
      "key": "value"
    },"name3": {
      "key": "value"
    },"name4": {
      "key": "value"
    },"name5": {
      "key": "value"
    },"name6": {
      "key": "value"
    },"name7": {
      "key": "value"
    }
  },
  "field2": {
    "key": "value"
  }
}

这里field1 & field2具有我可以创建pojo的常量格式,但对于complexfield,内部name对象每次都会有所不同(即格式相同但是{ {1}}每次都会改变。另外name不是迭代它的数组,它是一个对象。有一点很清楚我不能为此创建pojo我必须去Object by Object,但是我怎么想在每个响应中获取具有不同名称的complexfields内部对象?使用complexfield

我可以通过获取每个子对象@ runtime的名称来迭代这样复杂的对象吗?

1 个答案:

答案 0 :(得分:0)

我们最终使用了Gsons entrySet()类的JsonObject方法。参考:http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/JsonObject.html#entrySet()

我将键作为字符串和子对象获取为JsonElement

如何使用这个? 这是一个stackoverflow线程:Iterate over JsonObject properties