2016-03-30 17 views
0

Newbie zu Json hier, ich bin Gettin ein Wert Datenbank des Typs java.lang.String kann nicht in JSONObject Fehler konvertiert werden, wenn ich versuche und den folgenden Code ausführen.Ich kann keine machen Sinn für andere Antworten hier.String kann nicht in JSONObject Ausnahme

 JSONObject jsonObject = new JSONObject(json); 
     JSONArray jsonArray = jsonObject.getJSONArray("server_response"); 
     JSONObject JN = jsonArray.getJSONObject(0); 
     String code =JN.getString("code"); 
     String message = JN.getString("message"); 
     if (code.equals("reg_true")) 
     { 
      showDialog("Your Registration has been successful.",message,code); 
     } 
     else if (code.equals("reg_false")) 
     { 
      showDialog("Your Registration Failed.",message,code); 
     } 


    } catch (JSONException e){ 
     e.printStackTrace(); 
    } 

Dies ist der Fehler

W/System.err﹕ org.json.JSONException: Value Database of type java.lang.String cannot be converted to JSONObject 
W/System.err﹕ at org.json.JSON.typeMismatch(JSON.java:111) 
W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:160) 
W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:173) 
W/System.err﹕ at com.example.project.BackgroundTask.onPostExecute(BackgroundTask.java:133) 
W/System.err﹕ at com.example.project.BackgroundTask.onPostExecute(BackgroundTask.java:29) 
+0

Welche Art von String versuchen Sie in JSON zu konvertieren? Kannst du das zeigen? –

+1

Führen Sie 'Log.v (" JSON ", json);' Kopieren Sie den JSON, den Sie aus dem Protokoll erhalten, und fügen Sie ihn hier ein. –

+0

bieten Sie Ihre JSON vom Server abgerufen zu analysieren – Stallion

Antwort

1

Die JSON, die Sie buchen, ist ungültig, trimmen Sie das {"server_response und schließende geschweifte Klammern auch. Der verbleibende Json wird so sein, die jetzt gültig ist,

[{"code":"reg_true","message":"Sucessful registration.Thank you.Enjoy"}] 

Die Sie es wie hier analysieren kann,

JSONArray jsonarray = new JSONArray(json); 
JSONObject jsonobject = jsonarray.getJSONObject(0); 
String code = jsonobject.getString("code"); 
String message = jsonobject.getString("message"); 

UPDATE:

Wenn Ihr Json ist Wie Sie dann kommentiert haben, können Sie dieses einfach wie

abrufen
+0

Ich bin hier total deprimiert, durch trim {"server_response, was meinst du genau? Das server resopnse array ist auch ein teil des php codes. – user1958789

+0

Ist es die genaue JSon Antwort die du postest? Es ist wirklich ungültig falsch einfügen.Fügen Sie es erneut ein Diese Art von JSON wird nicht geparst. –

+0

.Die JSON-Antwort mit, Log.V ("JSON", JSON); vom Server {"server_response": [{"code": "login_false", "message": "Login fehlgeschlagen ... Versuch Agin ..."}]}. – user1958789

0

Ihr json ungültig ist. Sie können Ihre JSON auf jsonlint.com überprüfen Korrekte JSON sollte wie folgt sein {"server_response":{"code":"reg_true","message":"Sucessful registration.Thank you.Enjoy"}} Da Sie nur ein Json-Objekt verwenden, gibt es keine Notwendigkeit, JSON-Array zu erstellen.

Denken Sie daran, wenn es mit [ beginnt und mit ] sein JSON-Array endet; mit geschweiften Klammern {...} sein JSON-Objekt.

Verwandte Themen