如何在android中获取和转换自定义json数据作为字符串

时间:2017-02-07 07:25:30

标签: android json

我已经google了一下,发现了许多关于json for android的教程(重复)和提示,但我觉得很难察觉。我发现很难将得分和名称作为我从数据库中检索到的以下json的字符串。我试图先获取结果对象,然后获取名称和分数,但不确定如何从[{},{}]获取它。

是否有一些简单的示例或提示?这听起来很傻,但我需要你的帮助。我想听听你的意见!

{
  "result": [
    {
      "id": "3",
      "name": "Bobby",
      "score": "44"
    },
    {
      "id": "2",
      "name": "Mike",
      "score": "10"
    }
  ]
}

4 个答案:

答案 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对象(PO​​JO)。

  1. 在您的Android项目中加入GSON库:compile 'com.google.code.gson:gson:2.8.0'
  2. 创建您的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;
        }
    }
    
    }
  3. 将您的JSON反序列化到您的POJO对象: Gson gson = new Gson(); gson.fromJson(you_json_string, MyClass.class);

  4. 一旦你有了反序列化的对象,你只需要调用你的getter:

    getResults().get(0).getScore()