我在阅读Java中的Json文件时遇到了麻烦。
这是一个包含以下格式内容的Json文件:
{
"id": "10",
"groups": [{
"name": "text",
"questions": [{
"value": "text"
"response": {
}
}
]}
]}
我在Java中做过的事情:
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("/test.json"));
JSONObject j = (JSONObject) obj;
System.out.println(j);
String id = (String)j.get("id");
int idpart = Integer.parseInt(id);
System.out.println("id :" + idpart);
JSONArray lg = (JSONArray) j.get("groups");
Iterator i = lg.iterator();
while (i.hasNext()) {
JSONObject gobj = (JSONObject) i.next();
String name = (String)gobj.get("name");
System.out.println(name);
/** The problem start from here !**/
JSONArray lq = (JSONArray) j.get("questions");
Iterator it = lq.iterator();
while (it.hasNext()) {
JSONObject qobj = (JSONObject) i.next();
String idQuestion = (String)qobj.get("id");
System.out.println(idQuestion);
//How to get responses ?
}
}
我的问题是如何从问题列表中获取响应对象?
当我试图得到像这样的对象的问题列表时:
JSONArray lq = (JSONArray) j.get("questions");
Iterator it = lq.iterator();
while (it.hasNext()) {
JSONObject qobj = (JSONObject) i.next();
String idQuestion = (String)qobj.get("id");
System.out.println(idQuestion);
}
它显示错误:Null pointer
!
有人能帮助我吗?
答案 0 :(得分:0)
您必须从lg
而不是j
收到问题
您正在使用Iterator,将组对象分配到gobj
,因此请使用它:
JSONArray lq = (JSONArray) gobj.get("questions");