大家好我一直试图将上面的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)
有人请指出我正确的方向吗? 感谢。
答案 0 :(得分:3)
JSON字符串不是JSON数组字符串。 JSON字符串分别以{
,}
开头和结尾,而JSON数组分别以[
,]
开头和结尾。
这一行错了:
JsonArray array = parser.parse(inputLine).getAsJsonArray();
而是将其检索为JsonObject
。
答案 1 :(得分:0)
JSON Structures实现为对象,记录,结构,字典,哈希表,键控列表或关联数组。
您可以使用eval()函数来达到预期目标。 我想这会对你有帮助/
答案 2 :(得分:0)
我解决了我遇到的问题。新手错误与序列化注释。出于某种原因,我认为他们会引用类的名称而不是字段名称。但更重要的是,我还必须创建一个根级容器类来保存我的类。这允许解析所有对象。