我有一个使用 Android 编写的客户端/服务器应用程序,我正在使用与 android 捆绑在一起的标准 org.json 包类来进行解析和创建。
例如,我在生成的 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 中的值的内容,而是定义消息结构的字符(例如上面的引号字符),这表明这不是字符集问题。
有没有人遇到过这个?