我的代码是:
Object value = tasks.get(key);
结果value
是:[{"name":"one","family":"yes"},{"name":"two","family":"no"}]
现在我想在foreach中获得value
的孩子
foreach(...){
String name = ...
String family = ...
}
答案 0 :(得分:3)
您的值采用JSONArray格式。
使用此:
JSONArray values = new JSONArray((String) tasks.get(key)); // or alternative task.getString(key)
for (int i = 0; i < values.length(); i++) {
JSONObject entry = values.getJSONObject(i);
String name = entry.getString("name");
String family = entry.getString("family");
}
答案 1 :(得分:0)
对象本身不包含ig字段或其他内容,您必须创建pojo
(只是您想要干净且可重用的代码),以便从中获取字段,例如,使用{ {1}}
添加依赖项:
Gson
添加pojo:
dependencies {
implementation 'com.google.code.gson:gson:2.8.5'
}
转换:
public class Pojo{
@SerializedName("name")
@Expose
private String name;
@SerializedName("family")
@Expose
private String family;
}
答案 2 :(得分:0)
第1步:将Object实例转换为String
String response = (String) value;
步骤2:将String实例输入JsonArray
//don't forget to caught JSONException here
JsonArray array = new JsonArray(response);
步骤3: 遍历JsonArray并从每个JsonObject获取值
for (int i = 0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
//get values here
String name = object.getString("name");
String family = object.getString("family");
}
现在,整个代码应该像这样
try {
JSONArray array = new JSONArray("");
for (int i = 0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
String name = object.getString("name");
String family = object.getString("family");
}
} catch (JSONExceptione) {
//do something..
}
重要 如果您仍然不知道发生了什么,那么整个过程称为JSON解析。了解它。