2014-12-25 46 views
-4

我的問題是解析2d數組並修復erros。下面是我的jason文件,java代碼和錯誤列表。用eclipse解析jsot:2d數組

這是我的JSON文件:[
{
"elementaryProductId":1, "bonusMalus":30, "deductible":500, "comprehensive":1, "partial":0, "legacyPremium":130, "product":{
"productId":2, "garage":"true", "constructionYear":1990, "region":"East", "dateOfBirthYoungest":"1983-06-22", "objectValue":25000, "type":"Car" } },

,這是我的Java代碼,我覺得現在的問題是界定第二陣列:

try { 

     FileReader reader = new FileReader(filePath); 

     JSONParser jsonParser = new JSONParser(); 
     JSONArray jsonArray = (JSONArray) jsonParser.parse(reader); 


     Iterator i = jsonArray.iterator(); 
     while (i.hasNext()){ 

     JSONObject object = (JSONObject) i.next(); 

     . 
     . 
     . 


     JSONArray productArray = (JSONArray) jsonParser.parse("product"); 


     Iterator j = productArray.iterator(); 

     while (j.hasNext()) 
     { 
      JSONObject product = (JSONObject) j.next(); 

      long productId = (Long) product.get("productId"); 
      System.out.println("The id is: " + productId); 


     }` 

錯誤列表:Unexpected character (p) at position 0. at org.json.simple.parser.Yylex.yylex(Yylex.java:610) at org.json.simple.parser.JSONParser.nextToken(JSONParser.java:269) at org.json.simple.parser.JSONParser.parse(JSONParser.java:118) at org.json.simple.parser.JSONParser.parse(JSONParser.java:81) at org.json.simple.parser.JSONParser.parse(JSONParser.java:75) at com.domain.project.SveUMain.main(SveUMain.java:66)

回答

0

它出現的錯誤是從該行未來:

JSONArray productArray = (JSONArray) jsonParser.parse("product"); 
... 
Unexpected character (p) at position 0. 

這行代碼是要嘗試分析字符串「產品」就好像它是一個JSON字符串。當然,解析器不會抱怨第一個字符。

如果你想訪問的每個JSON對象的「產品」領域,你可以做這樣的:

Iterator i = jsonArray.iterator(); 
while (i.hasNext()){ 
    JSONObject object = (JSONObject) i.next(); 
    JSONObject productObj = (JSONObject) object.get("product"); 

JSON.simple不會出現有將返回一個函數只需一次調用即可從數組中的每個對象獲取產品對象。

0

這個json文件有一個語法錯誤。

當您嘗試驗證的在線編輯器裏面的文件,那麼它應該給你1號線。

JSON文件開頭的對象「{」,那麼在這裏面,你可以用你的數組中的語法錯誤。

另外最後一個「,」是錯誤的,因爲之後沒有元素。 (你需要關閉陣列「]」和對象「}」

這裏有兩個例子可能是您正確的JSON文件

{ 
    "elementaryProductId":1, 
    "bonusMalus":30, 
    "deductible":500, 
    "comprehensive":1, 
    "partial":0, 
    "legacyPremium":130, 
    "product":{ 
     "productId":2, 
     "garage":"true", 
     "constructionYear":1990, 
     "region":"East", 
     "dateOfBirthYoungest":"1983-06-22", 
     "objectValue":25000, 
     "type":"Car" 
    } 
} 

並且那是第二個解決方案:。

{ 
    "array": [ 
    { 
     "elementaryProductId": 1, 
     "bonusMalus": 30, 
     "deductible": 500, 
     "comprehensive": 1, 
     "partial": 0, 
     "legacyPremium": 130, 
     "product": { 
     "productId": 2, 
     "garage": "true", 
     "constructionYear": 1990, 
     "region": "East", 
     "dateOfBirthYoungest": "1983-06-22", 
     "objectValue": 25000, 
     "type": "Car" 
     } 
    } 
    ] 
} 
+0

之後有元素,它只是文件的一部分。 – Pepinho