2016-08-23 2 views
0

Dies ist die json, die ich von einer URLJSONarray zeigt Kein Wert Parsen gefunden

{ 
responce: "success", 
data: [ 
     { 
     Breakfast: [ 
      { 
       food_interval: "Breakfast", 
       id: "1", 
       menu_creator_id: "1", 
       item_code: "13", 
       food_interval_category_id: "1", 
       food_interval_category: "Main Item", 
       item_name: "Methi thepal", 
       item_quantity: "1", 
       unit_id: "1", 
       unit_desc: "Number" 
      }, 
      { 
       food_interval: "Breakfast", 
       id: "2", 
       menu_creator_id: "1", 
       item_code: "14", 
       food_interval_category_id: "2", 
       food_interval_category: "Cereals", 
       item_name: "Museli", 
       item_quantity: "1", 
       unit_id: "7", 
       unit_desc: "Bowl " 
      }, 
      { 
       food_interval: "Breakfast", 
       id: "3", 
       menu_creator_id: "1", 
       item_code: "15", 
       food_interval_category_id: "8", 
       food_interval_category: "Bread", 
       item_name: "Brown Bread", 
       item_quantity: "2", 
       unit_id: "1", 
       unit_desc: "Number" 
      }, 
      { 
       food_interval: "Breakfast", 
       id: "4", 
       menu_creator_id: "1", 
       item_code: "16", 
       food_interval_category_id: "21", 
       food_interval_category: "Butter Cheese", 
       item_name: "Cheddar Cheese", 
       item_quantity: "1", 
       unit_id: "3", 
       unit_desc: "Gram" 
      } 
      ] 
     } 
    ] 
} 

-Code ich versucht habe ich immer:

String result = response.body().string(); 
JSONObject jsonObject = new JSONObject(result); 
JSONArray foodintervalarray = jsonObject.getJSONArray("data"); 
for(int i = 0 ; i < foodintervalarray.length(); i++){ 
    JSONObject jsonObject1 = foodintervalarray.getJSONObject(i); 
    JSONArray breakfast = jsonObject1.getJSONArray("Breakfast"); 
    for(int j = 0 ; j < breakfast.length(); j++){ 
     JSONObject jsonObject2 = breakfast.getJSONObject(j); 
     String breakFastMenu = jsonObject2.getString("food_interval"); 
     Log.i("breakFastMenu","breakFastMenu "+breakFastMenu); 
    } 

Aber ich bin immer: für Frühstück Array Kein Wert . Nach dem Datenarray gibt es ein {, also muss ich JsonObject aufrufen, bevor ich JsonArray zum Frühstück anrufe? Kann mir jemand vorschlagen, was

Dank tun

Antwort

1

Dies ist ein falscher JSON-Format. Sie haben Schlüssel wickeln von "Zeichen Zunächst einmal versuchen, diese

Test hier:.. http://jsonlint.com/

Eg, dies richtig ist

{ 
    "responce": "success", 
    "data": [{ 
     "Breakfast": [{ 
      "food_interval": "Breakfast" 
     }] 
    }] 
} 

EDIT

import org.json.JSONArray; 
import org.json.JSONObject; 


public class tst { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     final String result = "{\"responce\":\"success\",\"data\":[{\"Breakfast\":[{\"food_interval\":\"Breakfast\",\"id\":\"1\",\"menu_creator_id\":\"1\",\"item_code\":\"13\",\"food_interval_category_id\":\"1\",\"food_interval_category\":\"Main Item\",\"item_name\":\"Methi thepal\",\"item_quantity\":\"1\",\"unit_id\":\"1\",\"unit_desc\":\"Number\"},{\"food_interval\":\"Breakfast\",\"id\":\"2\",\"menu_creator_id\":\"1\",\"item_code\":\"14\",\"food_interval_category_id\":\"2\",\"food_interval_category\":\"Cereals\",\"item_name\":\"Museli\",\"item_quantity\":\"1\",\"unit_id\":\"7\",\"unit_desc\":\"Bowl \"},{\"food_interval\":\"Breakfast\",\"id\":\"3\",\"menu_creator_id\":\"1\",\"item_code\":\"15\",\"food_interval_category_id\":\"8\",\"food_interval_category\":\"Bread\",\"item_name\":\"Brown Bread\",\"item_quantity\":\"2\",\"unit_id\":\"1\",\"unit_desc\":\"Number\"},{\"food_interval\":\"Breakfast\",\"id\":\"4\",\"menu_creator_id\":\"1\",\"item_code\":\"16\",\"food_interval_category_id\":\"21\",\"food_interval_category\":\"Butter Cheese\",\"item_name\":\"Cheddar Cheese\",\"item_quantity\":\"1\",\"unit_id\":\"3\",\"unit_desc\":\"Gram\"}],\"10 A. M\":[{\"food_interval\":\"10 A. M\",\"id\":\"\",\"menu_creator_id\":\"\",\"item_code\":\"\",\"food_interval_category_id\":\"\",\"food_interval_category\":\"\",\"item_name\":\"\",\"item_quantity\":\"\",\"unit_id\":\"\",\"unit_desc\":\"\"}],\"11.30 Soup\":[{\"food_interval\":\"11.30 Soup\",\"id\":\"5\",\"menu_creator_id\":\"5\",\"item_code\":\"9\",\"food_interval_category_id\":\"13\",\"food_interval_category\":\"Soup\",\"item_name\":\"Carrot Soup\",\"item_quantity\":\"1\",\"unit_id\":\"7\",\"unit_desc\":\"Bowl \"}],\"Lunch\":[{\"food_interval\":\"Lunch\",\"id\":\"6\",\"menu_creator_id\":\"6\",\"item_code\":\"15\",\"food_interval_category_id\":\"9\",\"food_interval_category\":\"Chapati\",\"item_name\":\"Brown Bread\",\"item_quantity\":\"4\",\"unit_id\":\"1\",\"unit_desc\":\"Number\"}],\"3.30 PM\":[{\"food_interval\":\"3.30 PM\",\"id\":\"\",\"menu_creator_id\":\"\",\"item_code\":\"\",\"food_interval_category_id\":\"\",\"food_interval_category\":\"\",\"item_name\":\"\",\"item_quantity\":\"\",\"unit_id\":\"\",\"unit_desc\":\"\"}],\"7 pm Soup\":[{\"food_interval\":\"7 pm Soup\",\"id\":\"\",\"menu_creator_id\":\"\",\"item_code\":\"\",\"food_interval_category_id\":\"\",\"food_interval_category\":\"\",\"item_name\":\"\",\"item_quantity\":\"\",\"unit_id\":\"\",\"unit_desc\":\"\"}],\"Dinner\":[{\"food_interval\":\"Dinner\",\"id\":\"\",\"menu_creator_id\":\"\",\"item_code\":\"\",\"food_interval_category_id\":\"\",\"food_interval_category\":\"\",\"item_name\":\"\",\"item_quantity\":\"\",\"unit_id\":\"\",\"unit_desc\":\"\"}]}]}"; 

     JSONObject jsonObject = new JSONObject(result); 
     JSONArray foodintervalarray = jsonObject.getJSONArray("data"); 
     for(int i = 0 ; i < foodintervalarray.length(); i++){ 
      JSONObject jsonObject1 = foodintervalarray.getJSONObject(i); 
      JSONArray breakfast = jsonObject1.getJSONArray("Breakfast"); 
      for(int j = 0 ; j < breakfast.length(); j++){ 
       JSONObject jsonObject2 = breakfast.getJSONObject(j); 
       String breakFastMenu = jsonObject2.getString("food_interval"); 
       System.out.println("breakFastMenu "+breakFastMenu); 
      } 
     } 
    } 

} 

Ich habe dieses JSON getestet. Aber wenn ich JSOUP verwende, erhalte ich 403 Fehler:

final String result = Jsoup.connect("http://dieto.vm1.in/api/menu_display_2d.php?date=2016/08/22&diet_type=6&food_category=1&class_type=1").ignoreHttpErrors(true).get().data(); 

Sie müssen überprüfen, ob Sie dieses JSON innerhalb des Codes abrufen (nicht im Browser).

+0

http://dieto.vm1.in/api/menu_display_2d.php?date=2016/08/22&diet_type=6&food_category=1&class_type=1 , wenn ich es in jsonlint testen, zeigt es mir richtig, es auch sagt gültig, aber in meinem Browser zeigt es anders, warum? –

+0

Das ist richtig json.w8 ein bisschen. Ich werde überprüfen. – Vyacheslav

+0

@narahari_arjun, aktualisiert. Überprüfen Sie, wie Sie Ihre JSON-Daten abrufen. Ist es richtig. – Vyacheslav

0

Überprüfen Sie die JSON-Gültigkeit von http://jsonlint.com/ Es ist keine gültige Antwort im Moment.

Danach erstellen Sie die entsprechende Response.java-Klasse und analysieren Sie sie mit Gson. Schreiben Sie einfach die Response.java Einheit nach Ihrem response.After dass:

Gson gson = new GsonBuilder().create(); 
Response r = gson.fromJson(jsonString, Response.class); 

Weiteren Beispiel Sie dieses Tutorial folgen: http://rowsandcolumns.blogspot.com/2013/02/url-encode-http-get-solr-request-and.html

+0

hey Dank für die Antwort, ich gebe Ihnen den ursprünglichen Link, ich habe gerade einen Teil davon veröffentlicht, eigentlich der Link, den ich in jsonlint geschrieben hatte, zeigt es gültig. In Json Lint, das Frühstück und die anderen anderen Sub-Arrays sind wie dieses "Frühstück" angezeigt, aber ich kann nicht so in meinem Browser anzeigen, warum? http://dieto.vm1.in/api/menu_display_2d.php?date=2016/08/22&diet_type=6&food_category=1&class_type=1 –

+0

Sie können Postman verwenden https://chrome.google.com/webstore/detail/ postman/fhbjgbiflinjbdggehcddcbncdddomop? hl = de –

0

Ihre json file.html keinen Tag von HTML hat Dosis nur Ihre json