Я хочу поместить результат JSON в текстовые представления, но из-за нескольких массивов я могу получить только один ключ/значение объектов datetime, location и status. Объект 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();
}

Может ли кто-нибудь помочь мне решить эту проблему? Спасибо

0
user3565145 8 Авг 2015 в 18:38

2 ответа

Для анализа JSON следует использовать библиотеку GSON.

И чтобы быть немного более полезным, вот как может выглядеть ваш класс для хранения значений 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);
1
pelotasplus 8 Авг 2015 в 18:52

Ваш формат 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
Remi Crystal 27 Ноя 2015 в 05:53
Последнее предложение должно быть в двойных кавычках Json
 – 
Pepe Peng
8 Авг 2015 в 19:13