我有一個使用Android編寫的客戶端/服務器應用程序,我使用與android捆綁的標準org.json包類來進行解析和創建。Json.org Android添加怪異字符
我已經得到的權利在例如產生的JSON字符串中間出現在服務器端怪異字符(不完整的一個,因爲它的大):
{!lo":"es_MX","id":2791884,"os":"8"}
正如你所看到的(!)感嘆號隨機出現,而不是雙引號。我還得到其他隨機字符出現在中間字符串。這是非常奇怪的。
下面是在這個確切位置它創建JSON對象的代碼...
JSONObject jsonObject = new JSONObject();
jsonObject.put("key", someValue);
這裏爲發送該代碼..
HttpPost type = new HttpPost(<server url here>);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("v", jsonObject.toString()));
type.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
httpClient.execute(type); // This is a DefaultHttpClient
我說隨機的,而是感嘆號在許多錯誤中是一致的,但不是每次都是一致的。大約有5條消息出現這種錯誤,每天有數萬條消息。通常不是插入到json中的值的內容,而是定義消息結構的字符(例如上面的引號字符),這暗示了這不是字符集問題。
有沒有人遇到過這個?
您可以發佈生成JSON的代碼嗎? –
您能否確認從服務器端JSON字符串按照JSON規定以良好格式構建? – MKJParekh
這幾乎可以肯定是一個字符集和/或編碼問題。您需要確保您的內容編碼和字符集在客戶端,服務器和傳輸過程中是相同的。 – Jonathan