我想将JSON结果放入textviews中,但是由于存在多个数组,我只能获得datetime,位置和状态对象的一个​​键/值。 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
}


这是我的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();
}


谁能帮我解决这个问题?谢谢

最佳答案

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

为了更加有用,这是您的用于保存JSON值的类的样子:

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


然后只需使用类似这样的方法将变量json与JSON数据转换为对象:

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

07-24 09:46
查看更多