我通常使用以下代码来解析JSON字符串:
JSONObject jobj = new JSONObject(message); strmsg = jobj.getString("text");
当数据如下所示时,效果很好:
{"emailAddress": "testuser@gmail.com"}
突然之间,当输入其他数据时,我遇到了问题。解析失败,并且在调试时,我发现该字符串如下所示:
"{\"emailAddress\":\"testuser@gmail.com\”}"
显然,我得到双引号内的JSON字符串。2个简短的问题:1)这是否正常,并且JSONObject应该能够解析它吗?2)如果不是,建议的处理方式是什么?
这似乎是JSON生成中的错误。JSON实际上应该在此处引发解析错误。如果无法更改方式,则会生成JSON字符串,您需要手动清理它。删除大括号周围的引号,并删除引号(您可以通过simplay调用jsonString.replace(“ \\”“,” \“”来做到);尽管这看起来有些麻烦,但转义是必要的…
String test = "\"{\\\"emailAddress\\\":\\\"testuser@gmail.com\\\"}\""; test.replace("\\\"", "\"");