2017-04-01 55 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方法

好吧,你從來沒有打印的用戶對象