2017-04-01 3 views
1

Ich versuche, ein Java-Objekt in Json mit Gson zu konvertieren. Aber als ich versuchte, ihn zu drucken out.I erhielt diese JSONJSON Backslash automatisch hinzufügen

{ "user": "{\" email \ ": \" [email protected] \ "\ "nachName \": \" Las \ "\ "Name \": \ "amy \", \ "Passwort \": \ "qwe123 \", \ "Telefon \": \ "8901245244 \"}"}

ich versuchte

s.replace ("\\", "\" ") aber weder hilft es noch seine eine gute Annäherung.

Weiter habe ich verschiedene Links durchgegangen, aber Antworten sind mehrdeutig.

Das ist mein User-Klasse toString Methode

public class User implements Serializable 
{ ... 
@Override 
public String toString() 
{ return "User{" + 
      "first_name:" + name+ 
      ", last_name:" + lastName+ 
      ", mobile:" + phone+ 
      ", email:" + email+ 
      ", password:" + password+ 
      "}"; 
} 

Ich denke, es ist nicht einmal diese toString Methode aufrufen.

und hier ist, wie ich zu JSON

Umwandlung am
 User u=new User(name,lastName,email,phone,password); 
     Gson userGson=new GsonBuilder().create(); 
     String jo=userGson.toJson(u); 

     JSONObject params=new JSONObject(); 
     params.put("user",jo); 
     Log.e("in register",params.toString()); 

Jede Hilfe sehr geschätzt wird.

Antwort

1

Sie haben es bereits in eine JSON-Zeichenfolge umgewandelt, dann kleben Sie diese in ein JSON-Objekt, das automatisch die JSON-Zeichenfolge entfernt. Probieren Sie etwas wie folgt aus:

User u=new User(name,lastName,email,phone,password); 
Gson userGson=new GsonBuilder().create(); 
JSONObject params = new JSONObject(); 
params.put("user",user); 
Log.e("in register", userGson.toJson(params)); 
+0

Wenn ich einfach gedruckte Ausgabe params seine die gleiche JSON geben je nach Bedarf und diese userGson.toJson (params) fügt nameVAluPAirs wie folgt hinzu: {"nameValuePairs": "user": "email": "[email protected]", "lastName": "Lad", "name": "ad", "password": " 1234567890 "," Telefon ":" 1234567890 "}}} – Aishwarya

1

params.toString() ist eine String-Darstellung des JSON, kein Benutzerobjekt.

Ich versuchte s.replace ("\" " "\"")

Sie müssen nicht, das zu tun ... Java ist die Zeichenfolge mit Escape-Zeichen zeigt. Wenn Sie die Escape-Zeichen sehen, haben Sie eine vorhandene JSON-Zeichenfolge in ein anderes JSON-Objekt konvertiert und erneut mit String-Editoren versehen.

String jo=userGson.toJson(u); 

Warum protokollieren Sie dies nicht stattdessen?

Ich denke, es ist nicht einmal dem Aufruf dieser Methode toString

Nun, man kann nie ein User-Objekt

Verwandte Themen