2012-06-18 53 views
1

更換逃生我對Android的這段代碼:在JSON對象的LinkedHashMap在Android

Map<String, String> idObject1 = new LinkedHashMap<String, String>(); 
      idObject1.put("Id", "Test1"); 
      idObject1.put("FirstName", "Test Name"); 
      idObject1.put("LastName", "Test Surname"); 
      idObject1.put("PhoneNumber", "12345"); 
Gson gson = new Gson(); 
json.put("ParticipantIds", gson.toJson(idObject1)); 
Log.d("Json", json.toString()); 
Log.d("ParticipantsJson", gson.toJson(idObject1).toString()); 

JSON對象也得到通過.put方法添加到它其他的東西。這只是搞亂了「參與者身份」鍵。

json.toString() 

輸出

{"ParticipantIds":"{\"Id\":\"Test1\",\"FirstName\":\"Test Name\",\"LastName\":\"Test Surname\",\"PhoneNumber\":\"12345\"}", 

gson.toJson(idObject1).toString()); 

輸出

{"Id":"Test1","FirstName":"Test Name","LastName":"Test Surname","PhoneNumber":"12345"} 

我需要的時候idObject1去除JSON對象的\ occurances被傳入它。它不一定非要使用Gson。我只是使用Gson來試圖讓它工作。我也試過:

json.put("ParticipantIds", idObject1); 

,並使用JSON-簡單的將它傳遞的嘗試我總是得到\轉義字符。 我甚至試過在idObject1上做.toString(),然後對其上的所有方法.replace.replaceAll進行處理。它不起作用!

+0

什麼是\轉義字符的問題是轉義序列。當您使用「字符串內的字符,然後字符串更改爲\」。所以我認爲逃跑的角色不會出現任何問題。當您嘗試解析該json字符串,然後您可以解析,我的意思是解析該json字符串時不會發生異常。 –

+0

服務器不喜歡對象中的\,我需要刪除它。 – JaboJG

+0

你應該與服務器人溝通,因爲帶有轉義字符的json字符串不會產生任何問題。 –

回答

2

當u得到JsonString更換給出低於這個適用於去除轉義序列

json.toString().replaceAll("\\\\","");