一尘不染

Android:解析双引号内的JSON字符串

json

我通常使用以下代码来解析JSON字符串:

JSONObject jobj = new JSONObject(message);
strmsg = jobj.getString("text");

当数据如下所示时,效果很好:

{"emailAddress": "testuser@gmail.com"}

突然之间,当输入其他数据时,我遇到了问题。解析失败,并且在调试时,我发现该字符串如下所示:

"{\"emailAddress\":\"testuser@gmail.com\”}"

显然,我得到双引号内的JSON字符串。2个简短的问题:1)这是否正常,并且JSONObject应该能够解析它吗?2)如果不是,建议的处理方式是什么?


阅读 518

收藏
2020-07-27

共1个答案

一尘不染

这似乎是JSON生成中的错误。JSON实际上应该在此处引发解析错误。如果无法更改方式,则会生成JSON字符串,您需要手动清理它。删除大括号周围的引号,并删除引号(您可以通过simplay调用jsonString.replace(“
\\”“,” \“”来做到);尽管这看起来有些麻烦,但转义是必要的…

String test = "\"{\\\"emailAddress\\\":\\\"testuser@gmail.com\\\"}\"";
test.replace("\\\"", "\"");
2020-07-27