2015-03-15 4 views
0

я использую этот JSONParser.java:Преобразование JSONObject в JSONArray

public class JSONParser { 

    static InputStream is = null; 
    static JSONObject jObj = null; 
    static String json = ""; 

    // constructor 
    public JSONParser() { 

    } 

    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) { 

     // Making HTTP request 
     try { 
      // defaultHttpClient 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost(url); 
      httpPost.setEntity(new UrlEncodedFormEntity(params)); 

      HttpResponse httpResponse = httpClient.execute(httpPost); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent(); 

     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(
        is, "iso-8859-1"), 8); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      json = sb.toString(); 
      Log.e("JSON", json); 
     } catch (Exception e) { 
      Log.e("Buffer Error", "Error converting result " + e.toString()); 
     } 

     // try parse the string to a JSON object 
     try { 
      jObj = new JSONObject(json);    
     } catch (JSONException e) { 
      Log.e("JSON Parser", "Error parsing data " + e.toString()); 
     } 

     // return JSON String 
     return jObj; 

    } 
} 

он работает нормально для моих запросов. Теперь мой php-файл отправляет массив. Как я конвертирую его в Jarray или непосредственно в ArrayList, который я могу использовать в своем приложении?

массив (2 шт) выглядит следующим образом:

03-15 20:40:16.667: E/JSON(26100): [{"ean":"8029694000","name":"KRINGS-VERBAU","betriebsdatenalt":"412"},{"ean":"8026786937","name":"KOMPRESSOR FAHR 5,3 M3 XAS97DDG","betriebsdatenalt":"0"}] 
+0

Вы посмотрели http://developer.android.com/reference/org/json/JSONArray.html? – stkent

+0

Будучи в стороне, я бы серьезно рекомендовал посмотреть на гссона или джексона за дело с json; библиотека org.json не самая приятная для работы с – beresfordt

ответ

2

Если у вас есть массив

 JSONArray myArray=new JSONArray(string) 

сейчас петли через массив и получить объекты, такие как

ArrayList<JSONObject> yourObjects=new ArrayList<JSONObject>(); 
    for(int i=0;i<myArray.length();i++){ 
     yourObjects.add(myArray.getJSONObject(i)) 
    } 

также проверяйте каждый раз, если его объект или массив получаются, как если бы

 JSONObject obj=new JSONObject(string from server); 
    if(obj==null){ 
     JSONArray array=new JSONArray(string from server) 
    } 
Смежные вопросы