我正在尝试使用Gson将java对象转换为json。但是当我尝试将其打印出来时。我得到了这个JSON
{ “用户”: “{\” 电子邮件\ “:\” abc@gmail.com \”,\ “姓氏\”:\ “LAS \” \ “名称\”:\ “艾米\”, \ “密码\”:\ “qwe123 \”,\ “电话\”:\ “8901245244 \”}“}
我试过
s.replace(“\\”“,”\“”) 但它既没有帮助,也没有一个好的方法。
此外,我已经浏览了各种链接,但答案含糊不清。
这是我的User类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());
感谢任何帮助。
答案 0 :(得分:2)
您已将其转换为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));
答案 1 :(得分:1)
"No file entered.Run script again. Exiting"
是JSON的字符串表示形式,而不是User对象。
我尝试过s.replace(“\”“,”\“”)
您不需要这样做... Java正在显示带有转义字符的字符串。如果您看到转义字符,那么您已将现有JSON字符串转换为另一个JSON对象,并再次对其进行字符串化。
params.toString()
为什么不记录这个?
我猜它甚至没有调用这个toString方法
好吧,你从未打印过用户对象