我通常使用以下代码来解析JSON字符串:
JSONObject jobj = new JSONObject(message);
strmsg = jobj.getString("text");
当数据如下所示时,效果很好:
{"emailAddress": "testuser@gmail.com"}
突然间,当其他一些数据出现时,我遇到了问题。解析失败了,当我调试时,我发现字符串如下所示:
"{\"emailAddress\":\"testuser@gmail.com\”}"
显然,我得到一个双引号内的JSON字符串。 2个简单问题: 1)这是正常的,JSONObject能否解析它? 2)如果没有,推荐的方法是什么?
答案 0 :(得分:3)
修剪双方的双引号:
strmsg.replaceAll("^\"|\"$", "")
答案 1 :(得分:2)
这似乎是JSON生成中的错误。 JSON确实应该在这里抛出一个解析错误。如果无法更改方式,则会生成JSON字符串,您需要手动清理它。删除花括号周围的引号并取消引号(你可以通过simplay调用来实现) jsonString.replace(“\\”“,”\“”); 虽然这看起来很复杂,但逃跑是必要的......
String test = "\"{\\\"emailAddress\\\":\\\"testuser@gmail.com\\\"}\"";
test.replace("\\\"", "\"");