2016-11-26 24 views
2

Ich erhalte eine Zeichenfolge von meinem MySql DB on und Online-Server mit Webservice im JSON-Format. Ich kann sehen, dass Android Studio es korrekt abruft, wie ich es im Debugging-Modus sehe. Aber wenn ich weitermachen und es zu einer Liste Liste hinzufügen, bekomme ich nichts.jsonObject.getString ("String in UTF8") gibt

Hier einige weitere Informationen: Was erhalte ich:

{"products":[{"veg_name_eng":"Corn","veg_name_hindi":"मक्का"}],"success":1} 

Meine Sorge ist, mit: "veg_name_hindi": "मक्का"

Wenn ich weitermachen und versuchen, es in einem Dataitem Liste, bekomme ich nichts:

public static List<DataItem> dataItemList; 
dataItemList.add(jsonObject.getString(veg_name_eng),jsonObject.getString(veg_name_hindi)) 

veg_name_eng und veg_name_hindi sind die Spaltennamen an meinem Tisch.

Nach dem obigen Code bekomme ich dataItemList = null, also nichts fügt hinzu.

In meiner Server-Seite MySql DB, verwende ich UTF-8-Codierung.

Ich benutze Android Studio.

UPDATE 1:

Ich bin Parsen der JSON als:

JSONObject jsonObject = new JSONObject(myJSONString); 
veg_list = jsonObject.getJSONArray("products"); 
try { 
    while (TRACK < veg_list.length()) { 
     JSONObject jsonObject = veg_list.getJSONObject(TRACK); 
     addItem(new DataItem(jsonObject.getString(veg_name_eng), jsonObject.getString(veg_name_hindi))); 
     TRACK = TRACK + 1; 
    } 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

// und die addItem Funktion ist wie folgt:

private static void addItem(DataItem item) { 
    dataItemList.add(item); //While Debugging, I can see that value of item is correct. (i.e., item: DataItem{veg_name_eng='Cork', veg_name_hindi='मक्का'}) 
    dataItemMap.put(item.getVeg_id(), item); 
} 
+0

Haben Sie [nach json_encode Fehlern suchen] (http://stackoverflow.com/documentation/php/617/json/2637/debugging-json-errors)? – Machavity

+0

Ich habe es gerade überprüft, es gibt keinen Fehler, das PHP-Skript in der Online-DB läuft gut und gibt die richtige Ausgabe zurück. –

Antwort

0

Stellen Sie zunächst ein Modell die Ihre JSON-Zeichenfolge mit

http://json2java.azurewebsites.net/

und ordnen Sie dann Ihren JSON-String Ihrem Modell zu, indem Sie Gson verwenden. Es ist sehr einfach zu benutzen.

Eine andere Möglichkeit, die erforderliche Zeichenfolge für dieses bestimmte Ergebnis zu erhalten, besteht darin, die JSON-Zeichenfolge selbst zu analysieren.

Beispiel:

String vegNameEng,vegNameHindi; 

vegNameEng = vegNameHindi = ""; 

try{ 
    JSONObject obj = new JSONObject(yourJsonString); 
    JSONArray arr = obj.getJSONArray("products"); 
    vegNameEng = arr.getJSONObject(0).getString("veg_name_eng"); 
    vegNameHindi = arr.getJSONObject(0).getString("veg_name_hindi"); 
}catch(JSONException ex){ 

} 

Jetzt vegNameEng und vegNameHindi haben die erforderlichen Daten ein.

+0

Ich habe bereits ein Modell für meine JSON-Zeichenfolge verwendet, ich habe dafür eine Klasse namens DataItem.java erstellt. Will versuchen Gson .. –

+0

Probieren Sie es aus. Du wirst es bekommen. oder Versuchen Sie die alternative Lösung. Verwenden Sie einfach den obigen Code mit Ihrem JsonString und Sie werden Ihre Daten in den entsprechenden Feldern haben. –

+0

Auch, @ Umer-Farooq Ich habe JSON auf ähnliche Weise analysiert .. Für Details überprüfen Sie bitte das Update 1 im Haupt-Thread (die ich gerade hinzugefügt habe.) –

0

Ich fand heraus, Es war ein dummer Fehler, die Variable, die ich verwendete, um Daten in die Datenbank zu setzen, wurde von einer anderen Variablen mit dem gleichen Namen überschrieben. Schließen Sie den Thread für jetzt. Danke @ Umer-Farooq.