从JSONArray获取JSONObject

Vin*_*oth 41 java android json

我对作为服务器响应的JSONObject进行了一些修复.

jsonObj = new JSONObject(resultString);
            JSONObject sync_reponse = jsonObj.getJSONObject("syncresponse");
            String synckey_string = sync_reponse.getString("synckey");
            JSONArray createdtrs_array = sync_reponse.getJSONArray("createdtrs");
            JSONArray modtrs_array = sync_reponse.getJSONArray("modtrs");
            JSONArray deletedtrs_array = sync_reponse.getJSONArray("deletedtrs");
            String deleted_string = deletedtrs_array.toString();

{"syncresponse":{"synckey":"2011-09-30 14:52:00","createdtrs":[],"modtrs":[],"deletedtrs":[{"companyid":"UTB17","username":"DA","date":"2011-09-26","reportid":"31341"}]
Run Code Online (Sandbox Code Playgroud)

正如你在我得到的响应中看到的那样,我正在解析JSONObject并创建syncresponse,synckey作为JSON对象 createdtrs,modtrs,deletedtrs作为JSONArray.我想从deletedtrs访问JSONObject,以便我可以拆分它们并使用这些值.即我想提取companyid,用户名,日期等.

我怎么能这样做?

感谢您的输入.

Lar*_*ars 118

JSONArray对象有一个函数getJSONObject(int index),你可以通过编写一个简单的for循环遍历所有的JSONObjects:

JSONArray array;
for(int n = 0; n < array.length(); n++)
{
    JSONObject object = array.getJSONObject(n);
    // do some stuff....
}
Run Code Online (Sandbox Code Playgroud)


Vin*_*kla 20

这是你的json:

{
    "syncresponse": {
       "synckey": "2011-09-30 14:52:00",
        "createdtrs": [

        ],
        "modtrs": [

        ],
        "deletedtrs": [
          {
           "companyid": "UTB17",
           "username": "DA",
           "date": "2011-09-26",
           "reportid": "31341"
      }
       ]
   }
}
Run Code Online (Sandbox Code Playgroud)

它正在解析:

JSONObject object = new JSONObject(result);
String syncresponse = object.getString("syncresponse");
JSONObject object2 = new JSONObject(syncresponse);
String synckey = object2.getString("synckey");
JSONArray jArray1 = object2.getJSONArray("createdtrs");
JSONArray jArray2 = object2.getJSONArray("modtrs");
JSONArray jArray3 = object2.getJSONArray("deletedtrs");
for(int i = 0; i < jArray3 .length(); i++)
{
   JSONObject object3 = jArray3.getJSONObject(i);
   String comp_id = object3.getString("companyid");
   String username = object3.getString("username");
   String date = object3.getString("date");
   String report_id = object3.getString("reportid");
}
Run Code Online (Sandbox Code Playgroud)