我有一个json字符串,需要使用java解析。格式为-
input = {"data":{"value":[654,123]},"address":null,"code":null}
因此,我只需要“值”:[654,123]
我尝试过,但是-
JSONParser parse = new JSONParser();
JSONObject jobj = (JSONObject)parse.parse(input);
JSONArray jsonarr_1 = (JSONArray) jobj.get("value");
System.out.println(jsonarr_1);
for(int i=0;i<jsonarr_1.size();i++)
{
JSONObject jsonobj_1 = (JSONObject)jsonarr_1.get(i);
JSONArray jsonarr_2 = (JSONArray) jsonobj_1.get("value");
System.out.println("values under value array");
System.out.println(jsonarr_2);
}
}
是json数组的第一级,并提供nullpointerexception
答案 0 :(得分:1)
您首先需要获取数据Json对象,然后从中读取值数组。 您可以在下面看到工作代码:
String input = "{\"data\":{\"value\":[654,123]},\"address\":null,\"code\":null}";
JSONParser parse = new JSONParser();
JSONObject jobj = (JSONObject) parse.parse(input);
JSONObject dataObj = (JSONObject) jobj.get("data");
JSONArray jsonarr_1 = (JSONArray) dataObj.get("value");
System.out.println(jsonarr_1);
for (int i = 0; i < jsonarr_1.size(); i++) {
System.out.println("values under value array");
long value = (long) jsonarr_1.get(i);
System.out.println(value);
}