2015-08-08 50 views
0

我要把JSON结果textviews但由于多种阵列的我能得到的日期时间,位置和状态的对象只有一个键/值。 JSON对象是:如何分析与多键的JSON对象在android系统

{ 
    "signature":"testSignature", 
    "deliverydate":"2015-08-06 15:07:00", 
    "datetime":{ 
     "0":1438848420, 
     "1":1438841820, 
     "2":1438838760, 
    }, 
    "location":{ 
     "0":"PA", 
     "1":"PA", 
     "2":"PA", 
    }, 
    "status":{ 
     "0":"packed", 
     "1":"On the go", 
     "2":"delivered", 
    }, 
    "pickupdate":2015-08-04 07:55:00 
} 

,这是我的Java代码:

try { 

    List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new BasicNameValuePair("NO", NUMBER_TO_POST)); 

    JSONObject json = jsonParser.makeHttpRequest(URL_TO_POST, "POST", params); 

    success = json.getString(TAG_SIGNATURE); 
    if (success != null) { 
     SIGNATURE = json.getString(TAG_SIGNATURE); 
     DELIVERY_DATE = json.getString(TAG_DELIVERY_DATE); 

     JSONObject DT = json.getJSONObject(TAG_DATETIME); 
     DATETIME = DT.getString("0"); 

     JSONObject LOC = json.getJSONObject(TAG_LOCATION); 
     LOCATION = LOC.getString("0"); 

     JSONObject STAT = json.getJSONObject(TAG_STATUS); 
     STATUS = STAT.getString("0"); 

     PICKUP_DATE = json.getString(TAG_PICKUP_DATE); 

    }else{ 
     finish(); 

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

谁能帮我解决这个问题?由于

回答

1

您应该使用GSON库来解析JSONs。

而且要多一点帮助,这里是如何你的类来保存JSON值可能看起来像:

class MyClassForGsonToHoldParseJSON { 
    String signature; 
    String deliverydate; 
    Map<String, long> datetime; 
    Map<String, String> location; 
    Map<String, String> status; 
    String pickupdate; 
} 

然后,只需使用这样的变量json使用JSON数据CONVER一个对象:

Gson gson = new Gson(); 
MyClassForGsonToHoldParseJSON f = gson.fromJson(json, MyClassForGsonToHoldParseJSON.class); 
0

你的JSON格式错误:

{ 
    "signature": "testSignature", 
    "deliverydate": "2015-08-06 15:07:00", 
    "datetime": { 
     "0": 1438848420, 
     "1": 1438841820, 
     "2": 1438838760 
    }, 
    "location": { 
     "0": "PA", 
     "1": "PA", 
     "2": "PA" 
    }, 
    "status": { 
     "0": "packed", 
     "1": "On the go", 
     "2": "delivered" 
    }, 
    "pickupdate": " 2015-08-04 07:55:00" 
} 
+0

最后一句应该是双QUOT es Json –