我有一个 JSON 格式String,它有一个单一的键值对,其中Map包含String各种类型的键和值,如下所示:"{"Key":"value","Map":{"key1":"val1","key2":"val2",...}}"我想要做的是将其转换String为 a JSONObject(因为我有其他可以轻松解释 a 的代码JSONObject)。我的第一直觉是使用解析器 ( JSONParser) 就像下面的代码片段...JSONParser parser = new JSONParser();Object o = new JSONParser();o = (JSONObject) parser.parse(jsonStr);JSONObject j = (JSONObject) o;…但我得到了一个ParseException而不是方便的JSONObject. 这是为什么?我应该String区别对待,因为它有Map内部吗?还是我在做超出 a 能力的事情JSONParser?
1 回答
DIEA
TA贡献1820条经验 获得超2个赞
...但我得到了一个
ParseException
而不是方便的JSONObject
. 这是为什么?
如果你有一个ParseException
,那意味着你认为 JSON 是(实际上)不是有效的 JSON。这不是您的解析代码或JSONObject
解析器的问题。这要么是(假设的)JSON 最初生成方式的问题,要么是到达应该解析它的代码的“通道”。
我应该以不同的方式对待字符串,因为它里面有一张地图吗?
不。
我注意到您的示例代码片段不够清晰/完整,无法准确说明您在做什么。(将来,请提供一个真正的MCVE而不是没有多大意义的代码片段1 ... 并且肯定无法编译和运行。)但是没有任何迹象表明该代码是导致的ParseException
。
还是我在做超出 a 能力的事情
JSONParser
?
不。JSON 解析器可以处理任何格式良好的JSON 。
要解决这个问题,您需要找出解析器认为您的 JSON 不好的原因,然后回到问题的根本原因。
1 - 例如,为什么要将JSONParser
对象分配给类型为 的变量Object
?
添加回答
举报
0/150
提交
取消