2016-11-10 12 views
0

Wie man Json-Daten mit zufälligem/unbekanntem Werttyp für Schlüssel parst Unter den json-Daten können Schlüsseldaten je nach Antwort vom Server ein json-Objekt oder eine Zeichenfolge sein.Parsen von JSON-Daten mit zufälligem/unbekanntem Wert für Schlüssel

Antwort 1 (Json Objekt)

{ 
      "responseCode": 2, 
      "responseMessage": "hi", 
      "data": { 
      "key": "Id", 
      "value": "10312412", 
      "key2": "Id2", 
      "key3": "Id3" 
      } 
    } 

Antwort 2 (String)

{ 
      "responseCode": 2, 
      "responseMessage": "hi", 
      "data": "String here" 
    } 

Antwort

1

Das Beste, was Sie tun können, ist

Object data = response.get("data"); 

Obwohl, können Sie möglicherweise versuchen

boolean gotObject = true; 
String dataString = null; 

// Try to request a JSONObject as a String 
dataString = String.valueOf(response.optJSONObject("data")); 

// If there wasn't a JSONObject, then try to get a String 
if (dataString.isEmpty() || dataString.equals("null")) { 
    dataString = response.optString("data"); 
    gotObject = false; 
} 

Dann können Sie versuchen, diese

if (gotObject) { 
    JSONObject data = new JSONObject(dataString); 
} 

Realistisch betrachtet, sollten Sie eine konsistentere Server API

+0

es sollte thanks..i zu denken geben, wenn (! DataString.isEmpty() || ! dataString.equals ("null"))? – Bhuvi

+0

Nein, wenn es leer oder null ist, dann gab es dort keine Daten, das heißt, der Wert war kein JSONObject –

Verwandte Themen