繁体   English   中英

如何在Android中使用多个键解析JSON对象

[英]How to parse the json object with multiple keys in android

我想将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);

您的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"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM