Deserializer Json与Java中的Gson

时间:2014-11-22 20:57:55

标签: java json gson

我想用java中的GSon解析Json中的数据我有这个json

    {
      "time": 3.251,
      "about_us": {
        "dc:identifier": "some string",
        "dc:title": "some string",
        "dc:contributor": [
          "1",
          "2"
        ],
        "dc:hasversion": "some string"
      },
      "results": {
        "ocw": [
          {
            "title": "some string",
            "url": "some string",
            "language": "some string",
            "university_name": "some string",
            "university_url": "some string",
            "description": "",
            "uri": "some string5",
            "similar": "some string",
            "resourceType": "OCW",
            "relatedoers": [

                    ]
          }
        ],
        "otheroer": [

        ]
      }
    }

我只需要获取"ocw"字段,我很困惑如何做到这一点。 我为json对象创建了相应的java类,并使用@SerializedName注释指定要为每个数据成员获取的字段名称。

课程如下。

结果

OCW

1 个答案:

答案 0 :(得分:1)

如果你将这个json存储在某些jsonString

    JsonObject jsonObject = (JsonObject) new JsonParser().parse(jsonString);
    JsonElement jsonElement = jsonObject.getAsJsonObject("results").getAsJsonArray("ocw").get(0);
    MyObject object = new GsonBuilder().create().fromJson(jsonElement, MyObject.class);    

MyObject应该反映这一部分:

        "title": "some string",
        "url": "some string",
        "language": "some string",
        "university_name": "some string",
        "university_url": "some string",
        "description": "",
        "uri": "some string5",
        "similar": "some string",
        "resourceType": "OCW",
        "relatedoers": [

                ]