0

可能重复:
Android 中的 JSON 解析

我发现我需要使用 Gson 类将 json 解析为 android 中的 Java 对象。解析简单的变量或数组很容易,但我不知道如何解析更复杂的 json 字符串,我的 json 看起来像这样:

{"selected_id":3, "data":[{"id":"3","score":"1534"},{"id":"1","score":"1234"}]}

谁能帮助我如何做到这一点?

4

3 回答 3

1
      //Model class 

    class Model {

         private  String mId ;
          private   String mScore;

         public Model (String id , String score){

             mId = id ;
             mScore= score
         }


      //getter and setter 

    } 

// 在你的班级

    private ArrayLsit getLsit(String str){
      ArrayLsit<Model > list = new  ArrayLsit<Model>();

        // getting JSON string from URL
        JSONObject json = new JSONObject(str);

        try {
            // Getting Array of Contacts
            contacts = json.getJSONArray("data");

            // looping through All Contacts
            for(int i = 0; i < contacts.length(); i++){
                JSONObject c = contacts.getJSONObject(i);

                // Storing each json item in variable
                String id = c.getString("id");
                String score= c.getString("score");
                list.add(new Model(id ,score))

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

   return list

 }
于 2012-06-25T09:35:29.893 回答
0

为 json 创建类,

Gson gson = 新 Gson(); Jsondata jsonddata = gson.fromJson(response, Jsondata .class);

===== JsonData.jave

@SerializedName("selected_id")
public String sid;

    @SerializedName("data") 
public List<data> dalalist;

=== 数据.java

    @SerializedName("id")
public String id;

    @SerializedName("score")
public String score;
于 2012-06-25T09:51:35.313 回答
0

看看代码..

        Result = jsonObject.getString("data");

        jsonArray = new JSONArray(Result);
        for (int i = 0; i < jsonArray.length(); i++) {
            jsonObject = jsonArray.getJSONObject(i);
            try {
                jsonObject.getString("Id");

            } catch (Exception ex) {
                cafeandbarsList.add(null);
                ex.printStackTrace();
            }
        }

谢谢

于 2012-06-25T09:37:20.437 回答