在android中解析json

时间:2012-06-25 09:30:15

标签: android json gson

  

可能重复:
  JSON Parsing in Android

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

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

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分: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

 }

答案 1 :(得分: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();
            }
        }

由于

答案 2 :(得分:0)

为json创建类,

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

===== JsonData.jave

@SerializedName("selected_id")
public String sid;

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

=== data.java

    @SerializedName("id")
public String id;

    @SerializedName("score")
public String score;