我的问题是,这将创建3个DailyJobObjects的新实例,其值与对象编号1(01,Bill,50)相同。这样做是合乎逻辑的,那么如何迭代我的jsonObject以便将三个对象分开呢?我已经不知疲倦地查看了这个内容,但是我所看到的所有东西都包含在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;
答案 0 :(得分:0)
正如@Selvin所说,你的json无效。从数据库中获取正确的json或以非标准方式解析它。我建议从DB中获取一个合适的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)