2016-09-21 59 views
-1

我的問題是這將創建3個與對象編號1(01,Bill,50)相同的值的DailyJobObjects的新實例。這是合乎邏輯的,所以我怎樣才能遍歷我的jsonObject,這樣我就可以分開這三個對象?我孜孜不倦地看着這個,但是我看到的所有東西都有,並且數組包含在jsonData中,這會讓事情變得更容易,但是這個響應Body直接來自數據庫 - 沒有數組,只是背對背的對象。迭代只給我一個我已經在一個單獨的方法中做的鍵,給我一半的地圖。現在我需要這些值。你不必給我一個答案,你可以(我寧願)指出我錯過的東西。謝謝!迭代通過沒有包含數組的Java jsonObjects

{"id":"01","name":"Bill","salary":"50"}, 
{"id":"02","name":"James","salary":"60"}, 
{"id":"03","name":"Ethan","salary":"70"} 

JSONObject fields = new JSONObject(jsonData); 

    mObjectArray = new DailyJobObjectArray[fields.length()]; 

    for(int i=0; i< fields.length(); i++) { 
     DailyJobObject mObject = new DailyJobObject(); 

     mObject.setName(fields.getString("name")); 
     mObject.setSalary(fields.getString("salary")); 

     mObjectArray[i] = mObject; 
    } 
    return mObjectArray; 
+0

1.您的JSON是無效,2.'DailyJobObject mObject = new DailyJobObject();'amd then'mObject(...)'不會在java中產生敏感性 – Selvin

+0

@Selvin程序運行時,與json有關。這沒有問題。我只是複製並粘貼了我的Android監視器中的json。 DailyJobObject是我創建的一個自定義類。 – Addy75

+0

對不起,我剛剛編輯。錯過了複製和粘貼的一些內容。 – Addy75

回答

0

正如@Selvin所提到的,您的json無效。從數據庫中獲取正確的json或者以非標準的方式解析它。我會建議從數據庫中獲取正確的json數組。

String[] splitString = jsondata.split("[^a-zA-Z \\{\\}]+(?![^\\{]*\\})"); 
    for (String s : splitString) { 
     try { 
      JSONObject field = new JSONObject(s); 
      String name = field.getString("name"); 
      String id = field.getString("id"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

    } 

我也同意你的mObject(......)完全不

意義也許您正在尋找這樣的事情

mObject.setName(name) 
+0

是的,我很抱歉,當我複製並粘貼時,我忘記了我的對象方法。我剛剛編輯。另外我假設從顯示器複製的Json仍然具有程序在運行時添加的轉義字符。我剛剛編輯過,請看一下,讓我知道我的帖子現在是否更清晰。謝謝。 – Addy75