http://pastebin.com/rXbeKqAa

大家好,我一直在尝试将上述JSON解析为Java程序并将其存储到对象中……(目前我没有特定的结构,只要我可以从对象中获取数据即可。)

一直在尝试使用GSON,但我似乎无法正确使用它。

        String inputLine="";
    HttpClient httpclient= new DefaultHttpClient();
    HttpGet method = new HttpGet("http://localhost:3000/specs/215/errors.js");
    HttpResponse response =httpclient.execute(method);
    BufferedReader in = new BufferedReader(
            new InputStreamReader(
                    response.getEntity().getContent()));

    inputLine = in.readLine();
    System.out.println(inputLine);
    in.close();
    Gson gson = new Gson();
    JsonParser parser = new JsonParser();
    JsonArray array = parser.parse(inputLine).getAsJsonArray();

    for(int i=0; i < array.size(); i++) {

        Errors e = gson.fromJson(array.get(0), Errors.class);
        System.out.println(e.error.getReason());
    }


我得到的错误是:

Exception in thread "main" java.lang.IllegalStateException: This is not a JSON Array.
    at com.google.gson.JsonElement.getAsJsonArray(JsonElement.java:99)
    at test.Getter.main(Getter.java:37)


有人请指出正确的方向吗?
谢谢。

最佳答案

JSON字符串不是JSON数组字符串。 JSON字符串分别以{}开头和结尾,而JSON Array分别以[]开头和结尾。

这行是错误的:

JsonArray array = parser.parse(inputLine).getAsJsonArray();


而是将其作为JsonObject检索。

09-10 02:03
查看更多