簡體   English   中英

遍歷 Java jsonObjects 不包含數組

[英]Iterate through Java jsonObjects without array included

我的問題是這將創建 DailyJobObjects 的 3 個新實例,其值與對象一號(01、Bill、50)相同。 這樣做是合乎邏輯的,那么我如何遍歷我的 jsonObject 以便我可以分離三個對象? 我不知疲倦地查找了這個,但是我所看到的所有東西都包含在 jsonData 中,並且數組包含在 jsonData 中,這將使事情變得更容易,但是這個響應 Body 直接來自數據庫 - 沒有數組,只是背靠背的對象。 迭代只給了我我已經在一個單獨的方法中完成的鍵,給我一半的地圖。 現在我需要這些值。 你不必給我答案,你可以(我寧願)指出我遺漏的東西。 謝謝!

{"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;

正如@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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM