1
我在閱讀Java中的Json文件時遇到了麻煩。如何從Java中的文件中讀取JSON - json.simple
這是這種格式與內容的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
!
有人可以幫助我嗎?
凌亂,不可讀的代碼。例外告訴你獲得NPE的行號。打開文本編輯器,顯示行號,轉到堆棧跟蹤引用的行,然後查看引用。其中一個是空的。通過調試器旋轉會告訴你比在這裏要求更快。 – duffymo
使用:'j.getJsonArray(「questions」);'沒有演員而只是'(...)j.get(...);'。還有更好的功能,會給你正確的對象:http://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html,所以鑄造是沒有必要的。 –
@AndreKampling謝謝你的評論,但我使用org.json.simple所以getJsonArray(「」)不可能! – SaKH