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

时间:2014-01-12 01:24:54

标签: java android json

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

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

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

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

突然间,当其他一些数据出现时,我遇到了问题。解析失败了,当我调试时,我发现字符串如下所示:

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

显然,我得到一个双引号内的JSON字符串。 2个简单问题: 1)这是正常的,JSONObject能否解析它? 2)如果没有,推荐的方法是什么?

2 个答案:

答案 0 :(得分:3)

修剪双方的双引号:

strmsg.replaceAll("^\"|\"$", "")

答案 1 :(得分:2)

这似乎是JSON生成中的错误。 JSON确实应该在这里抛出一个解析错误。如果无法更改方式,则会生成JSON字符串,您需要手动清理它。删除花括号周围的引号并取消引号(你可以通过simplay调用来实现)     jsonString.replace(“\\”“,”\“”); 虽然这看起来很复杂,但逃跑是必要的......

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