2016-02-03 169 views
3

我在我想分析的名爲「json」的變量中有一個JSON文件格式。 不過,我收到此錯誤信息:JSON解析(未找到JSON對象)Java

Exception in thread "main" org.json.JSONException: JSONObject["bindings"] not found. 

這是我使用的代碼:

JSONObject obj = new JSONObject(json);    
JSONArray bindings = obj.getJSONArray("bindings");  

for (int i=0; i<obj.length(); i++) 
{ 
JSONObject x = bindings.getJSONObject(i);     
x.getJSONObject("type1").getString("type"); 
System.out.println(x); 
} 

這是我試圖解析JSON:

{ 
    "head": { 
    "vars": [ "type1" , "pred" , "type2" ] 
    } , 
    "results": { 
    "bindings": [ 
     { 
     "type1": { "type": "Collection" } , 
     "type2": { "type": "has" } , 
     "type3": { "type": "contributor" } 
     } , 
     { 
     "type1": { "type": "Collection2" } , 
     "type2": { "type": "has2" } , 
     "type3": { "type": "contributor2" } 
     } 

] 
} 
} 

即使當我執行下面的for循環時,它仍然顯示相同的錯誤信息。

JSONObject obj = new JSONObject(json);    
JSONArray bindings = obj.getJSONArray("bindings"); 

回答

4

您需要通過結果JSONObject首先以通到你JSONArray

JSONObject obj = new JSONObject(json);   
JSONObject results = obj.getJSONObject("results"); 
JSONArray bindings = results.getJSONArray("bindings");