2017-04-01 1344 views
1

我想将java对象转换为使用Gson的json。但是当我试图打印出来out.I得到这个JSONJSON自动添加反斜杠

{ “用户”: “{\” 电子邮件\ “:\” [email protected] \ “\ ”姓氏\“:\” 拉斯维加斯\ “\ ”名称\“:\ ”艾米\“,\ ”密码\“:\ ”qwe123 \“,\ ”电话\“:\ ”8901245244 \“}”

我试过

s.replace(“\\”“,”\“”) 但它既没有帮助,也没有它的好方法。

此外,我已经通过各种链接,但答案不明确。

这是我的用户类的toString方法

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

我猜它甚至没有调用这个toString方法。

,这里是我怎么转换成JSON

 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()); 

任何帮助表示赞赏。

回答

1

您已将其转换为JSON字符串,然后将其粘贴到自动转义JSON字符串的JSON对象中。尝试是这样的:

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

如果我只是输出PARAMS其给予同样的JSON的要求,这userGson.toJson( params)添加nameVAluPAirs,如下所示:{“nameValuePairs”:“user”:“email”:“[email protected]”,“lastName”:“Lad”,“name”:“ad”,“password”:“ 1234567890" , “手机”: “1234567890”}}} – Aishwarya

1

params.toString()是JSON的字符串表示,而不是用户对象。

我试图s.replace( “\” “ ”\“”)

你没必要这么做...... Java正在显示与转义字符的字符串。如果您看到转义字符,那么您已经将现有的JSON字符串转换为另一个JSON对象,并再次进行字符串编辑。

String jo=userGson.toJson(u); 

为什么你不记录这个呢?

我猜它甚至没有调用这个toString方法

好吧,你从来没有打印的用户对象