2016-08-19 3 views
-3

i am beginner at android может кто-нибудь сказать мне, как разбирать все массивы Json, которые попадают под один массив исправлений. Я хочу разобрать все имя массива в родителяхкак разобрать массив Json, который имеет выше hundreads массивов и его несколько объектов

ниже приводится пример Json:

{ 
    "err-code": 0, 
    "worksheet": [ 
    { 
     "2016-08-19": [ 
     { 
      "worksheet_id": 130, 
      "job_no": "ES100353-AF", 
      "message": "Matthew Smith has submitted Worksheet for Approval", 
      "added_date": "19 Aug 2016", 
      "added_time": "06:31 AM", 
      "status": "Pending" 
     } 
     ], 
     "2016-08-18": [ 
     { 
      "worksheet_id": 107, 
      "job_no": "ES100353-AF", 
      "message": "Matthew Smith has submitted Worksheet for Approval", 
      "added_date": "18 Aug 2016", 
      "added_time": "05:31 AM", 
      "status": "Pending" 
     } 
     ] 
    } 
    ] 
} 
+0

вам нужно создать класс pojo для вашего jsonObject. После этого моя библиотека обрабатывает его автоматически. Попробуйте его один раз. https://github.com/amitshekhariitbhu/Fast-Android-Networking –

+0

, пожалуйста, разместите часть своего JSON, чтобы я мог вам помочь. –

+0

Я опубликовал .u может видеть брата –

ответ

1

Вы можете разобрать JSON, используя родной JSON парсер Android, как показано ниже:

public ParsedData parseWorksheet(String in) throws JSONException { 
     JSONObject reader = new JSONObject(in); 
     String errCode = reader.getString("err-code"); 
     JSONArray jsonArrayOuter = reader.optJSONArray("worksheet"); 
     ParsedData parsedData = new ParsedData(); 
     parsedData.errCode = errCode; 
     for(int i=0; i < jsonArrayOuter.length(); i++){ 
      JSONObject jsonObject = jsonArrayOuter.getJSONObject(i); 
      Iterator<String> iterator = jsonObject.keys(); 
      ArrayList<Worksheet> worksheetArrayList = new ArrayList<Worksheet>(); 
      while(iterator.hasNext()){ 
       Worksheet worksheet= new Worksheet(); 
       String key = (String)iterator.next(); 
       worksheet.worksheetDataKey = key; 
       JSONArray jsonArrayW = jsonObject.optJSONArray(key); 
       WorksheetInnerData[] WorksheetDataArray = new WorksheetInnerData[jsonArrayW.length()]; 
       for(int j=0; j < jsonArrayW.length(); j++){ 
        JSONObject jsonObjectWorksheetData = jsonArrayW.getJSONObject(j); 
        WorksheetInnerData worksheetData= new WorksheetInnerData(); 
        String worksheet_id = jsonObjectWorksheetData.getString("worksheet_id"); 
        worksheetData.worksheet_id = worksheet_id; 
        String job_no = jsonObjectWorksheetData.getString("job_no"); 
        worksheetData.job_no = job_no; 
        String message = jsonObjectWorksheetData.getString("message"); 
        worksheetData.message = message; 
        String added_date = jsonObjectWorksheetData.getString("added_date"); 
        worksheetData.added_date = added_date; 
        String status = jsonObjectWorksheetData.getString("status"); 
        worksheetData.status = status; 
        WorksheetDataArray[j] = worksheetData; 
       } 
       worksheet.WorksheetInnerDataArray = WorksheetDataArray; 
       worksheetArrayList.add(worksheet); 
      } 
      parsedData.worksheetArray = worksheetArrayList; 
     } 
     return parsedData ; 
    } 

После должна быть ваша моделью данных:

private static class ParsedData { 
    public String errCode; 
    public ArrayList<Worksheet> worksheetArray; 
} 

private static class Worksheet { 
    public String worksheetDataKey; 
    public WorksheetInnerData WorksheetInnerDataArray []; 
} 

private static class WorksheetInnerData { 
    public String worksheet_id; 
    public String job_no; 
    public String message; 
    public String added_date; 
    public String status; 
} 

Надеется, что это помогает !!!

+0

имя массива не исправлено его много ..means ежедневное имя массива увеличивается в соответствии с датой..так в этом случае, как разобрать вложенный массив ..means они не статические –

+0

u может видеть имена массивов датируются –

+0

Я обновил свой ответ, см. –

0
Try This 

     RequestQueue queue = Volley.newRequestQueue(this); 
     final String url = "http://httpbin.org/get?param1=hello"; 

    //prepare the Request 
    JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null, 
new Response.Listener<JSONObject>() 
{ 
    @Override 
    public void onResponse(JSONObject response) { 
    JSONArray responserecentbooks = response.getJSONArray("arrayname"); 
       for (int i = 0; i < responserecentbooks.length(); i++) { 
        JSONObject person = (JSONObject) responserecentbooks.get(i); 
        String bookid = person.getString("element"); 
        //store values in Arraylist 
        try { 

        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
     Log.d("Response", response.toString()); 
    } 
}, 
new Response.ErrorListener() 
{ 
    @Override 
    public void onErrorResponse(VolleyError error) {    
     Log.d("Error.Response", response); 
    } 
} 
); 

// add it to the RequestQueue 
queue.add(getRequest); 
0
  1. Добавить компиляцию 'com.google.code.gson: gson: 2.2.4' на уровне приложения build.gradle.
  2. Создать такую ​​же структуру, как класс JSON
  3. новый Gson() fromJson (jsonArray.toString(), новый TypeToken>() {} .getType()).
1

его очень просто для анализа данных JSON в файл, 1) .Вы нужен первый объект String, если это правда

2) принимают JsonArray с его объектом, чтобы получить «лист» массив 3). Теперь на ваш вопрос: у вас есть огромные массивы json , затем a) .take Итератор для получения всех ключей массива Iterator и сохраните его в arraylist. b). И строковый объект передают его в JSONArray (Stringkey); с) теперь получить все строки внутри массива JSON, используя петлю d) и сохранить все ..where вы хотите сохранить отделки ..

это способ, которым Вы можете разобрать eaisly

+0

Ничего себе вы просто комментировали мой ответ ... LOL –