2

我将如何使用谷歌 GSON 库解析 JSON?我返回的 JSON 的一个示例是:

[
    {
        "title": "Down",
        "album": "Down",
        "length": 212.61,
        "artist": "Jay Sean"
    },
    {
        "title": "Come to Me (Peace)",
        "album": "Growing Pains",
        "length": 301.844,
        "artist": "Mary J Blige"
    }
]

这是一个 json 对象数组,对吗?我将如何用 Gson 提取这个?这就是我正在尝试的,但我得到了空指针异常:

        JsonElement jelement = new JsonParser().parse(jsonInfo);
        JsonObject  jobject = jelement.getAsJsonObject();
        jobject = jobject.getAsJsonObject("");
        JsonArray jarray = jobject.getAsJsonArray("");
        jobject = jarray.get(0).getAsJsonObject();
        String result = jobject.get("title").toString();
4

2 回答 2

4

您必须为 List 创建一个 Type 实例。

    class MyObj {
        String title;
        String album;
        double length;
        String artist;
    }

    String json = "[\n" +
            "    {\n" +
            "        \"title\": \"Down\",\n" +
            "        \"album\": \"Down\",\n" +
            "        \"length\": 212.61,\n" +
            "        \"artist\": \"Jay Sean\"\n" +
            "    },\n" +
            "    {\n" +
            "        \"title\": \"Come to Me (Peace)\",\n" +
            "        \"album\": \"Growing Pains\",\n" +
            "        \"length\": 301.844,\n" +
            "        \"artist\": \"Mary J Blige\"\n" +
            "    }\n" +
            "]";
    Type listType = new TypeToken<List<MyObj>>() {}.getType();
    List<MyObj> list = new Gson().fromJson(json, listType);
    System.out.println(new Gson().toJson(list));
于 2013-08-23T06:40:41.797 回答
0

Gson gson = 新 Gson(); 格森。//很多方法

于 2013-08-23T06:36:00.463 回答