我已经google了一下,发现了许多关于json for android的教程(重复)和提示,但我觉得很难察觉。我发现很难将得分和名称作为我从数据库中检索到的以下json的字符串。我试图先获取结果对象,然后获取名称和分数,但不确定如何从[{},{}]获取它。
是否有一些简单的示例或提示?这听起来很傻,但我需要你的帮助。我想听听你的意见!
{
"result": [
{
"id": "3",
"name": "Bobby",
"score": "44"
},
{
"id": "2",
"name": "Mike",
"score": "10"
}
]
}
答案 0 :(得分:1)
在json中{}表示对象,[]表示数组。 首先,您应该从字符串创建一个Json对象。然后将结果作为数组。结果你有两个对象,你可以用它们的索引获得它们。
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray result= jsonObject .getJSONArray("result");
// Now we can iterate through the array
for(int i = 0; i < result.length(); i++) {
JSONObject item = (JSONObject) result.get(i);
String name = item.getString("name");
String score = item.getString("score");
}
答案 1 :(得分:1)
就这么简单
就这样做
首先根据您的需要制作模型,如ID,名称和分数
然后使用此
JSONObject jObj = new JSONObject(response.toString());
JSONArray results = jObj.getJSONArray("result");
现在值在数组中使用该数组来显示值
答案 2 :(得分:1)
让,
String s = "{"result": [{"id": "3","name": "Bobby","score": "44"},{"id": "2","name": "Mike","score": "10"}]}";
JSONObject jsonObject = new JSONObject(s);
JSONArray result= jsonObject .getJSONArray("result");
for(int i = 0; i < result.length(); i++) {
JSONObject json = result.getJSONObject(i);
String name = json.getString("name");
String score = json.getString("score");
}
答案 3 :(得分:1)
使用GSON从JSON反序列化为普通旧Java对象(POJO)。
compile 'com.google.code.gson:gson:2.8.0'
创建您的JAVA POJO模型:
public class MyClass { @SerializedName("result") private List mResult;}public List<Result> getResults() { return mResult; } private static class Result { @SerializedName("id") private String mId; @SerializedName("name") private String mName; @SerializedName("score") private String mScore; public String getId() { return mId; } public String getName() { return mName; } public String getScore() { return mScore; } }
将您的JSON反序列化到您的POJO对象:
Gson gson = new Gson();
gson.fromJson(you_json_string, MyClass.class);
一旦你有了反序列化的对象,你只需要调用你的getter:
getResults().get(0).getScore()