简体   繁体   English

如何与Gson一起阅读Json

[英]How to read Json with Gson

HOw would I go about parsing JSON using the google GSON library? 我将如何使用Google GSON库解析JSON? An example of my returned JSON is: 我返回的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"
    }
]

This is an array of json objects, is that right? 这是json对象的数组,对吗? How would I go about extracting this with Gson? 我将如何使用Gson提取此内容? This is what im trying but am getting null pointer exceptions: 这是我正在尝试但正在获取空指针异常的方法:

        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();

You must create a Type instance for 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));

Gson gson = new Gson(); Gson gson =新的Gson(); gson. GSON。 //a lot methods //很多方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM