2015-05-26 2 views
0

В настоящее время у меня возникают небольшие проблемы с попыткой получить строковые данные из jsonArray, однако я не могу получить значение. У меня есть данные в примере объекта JSON:Невозможно получить данные JSON из JSONObject в android?

{ 
    "lot":[ 
     { 
      "id":"271", 
      "lot_date":"2015-05-25" 
     } 
    ], 
    "numb3":[ 
     { 
      "id":"675", 
      "lot_date":"2015-05-25" 
     } 
    ], 
    "num4":[ 
     { 
      "id":"676", 
      "lot_date":"2015-05-25" 
     } 
    ], 
    "result":"OK" 
} 

Приведенные выше данные хранятся в jsonobj JSONObject. И что я хочу сделать, это проверить, содержит ли массив JSON JSONArray lot6 = jsonobj.optJSONArray("lot6"); значения или нет, и если он не равен null, получите строковые данные. Однако даже данные содержатся в массиве lot6, результат равен нулю.

JSONArray lot6 = jsonobject.optJSONArray("lot6"); 
Log.d("LOT6",lot6+""); 

if (lot6 != null) { 
    jsonarry2 = jsonobject.getJSONArray("lot6"); 
    //3.if not null get the string data from the 

    for (int i = 0; i < jsonarry2.length(); i++) { 
     HashMap<String, String> map = new HashMap<String, String>(); 
     jsonobject = jsonarry2.getJSONObject(i); 

     ListData worldpop = new ListData(); 
     worldpop.set_date(jsonobject.optString("lot_date")); 
     worldpop.set__id(jsonobject.optString("id")); 
     world.add(worldpop); 


    } 
    //5. test this part of the variable 
    String lotdate = world.get(0).get_date(); 
    String lotid = world.get(0).get__id(); 
+2

Вы можете проверить 'jsonobject.has ("lot6");' –

+1

Пожалуйста, прочтите [документацию JSONObject] (http://developer.android.com/reference/org/json/JSONObject.html) – Sufian

+0

Спасибо! Задача решена! – user3264924

ответ

0

Привет, пожалуйста, проверьте Не много6 его много. пожалуйста, следуйте ниже formate, чтобы выйти.

String s="{\"lot\":[{\"id\":\"271\",\"lot_date\":\"2015-05-25\"}],\"numb3\":[{\"id\":\"675\",\"lot_date\":\"2015-05-25\"}],\"num4\":[{\"id\":\"676\",\"lot_date\":\"2015-05-25\"}],\"result\":\"OK\"} "; 

    try{ 
      JSONParser parser = new JSONParser(); 
      JSONObject json = (JSONObject) parser.parse(s); 
      String arr[]={"lot","numb3","num4"}; 
      for(int i=0;i<json.size()-1;i++){ 
      JSONArray ja=(JSONArray)json.get(arr[i]); 
      for(int j=0;j<ja.size();j++){ 

       JSONObject jo1=(JSONObject) ja.get(j); 

     System.out.println("lot_date: "+jo1.get("lot_date")+" Id "+jo1.get("id")); 

      } 

     // System.out.println(ja); 
      } 

      System.out.println(json.get("result")); 

      }catch (Exception e) { 
       System.out.println(e); 
      } 
+0

Спасибо! я попробую – user3264924