如何在 Java 中解析多维 JSONString

我有一个 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?


梦里花落0921
浏览 172回答 1
1回答

DIEA

...但我得到了一个ParseException而不是方便的JSONObject. 这是为什么?如果你有一个ParseException,那意味着你认为 JSON 是(实际上)不是有效的 JSON。这不是您的解析代码或JSONObject解析器的问题。这要么是(假设的)JSON 最初生成方式的问题,要么是到达应该解析它的代码的“通道”。我应该以不同的方式对待字符串,因为它里面有一张地图吗?不。我注意到您的示例代码片段不够清晰/完整,无法准确说明您在做什么。(将来,请提供一个真正的MCVE而不是没有多大意义的代码片段1 ... 并且肯定无法编译和运行。)但是没有任何迹象表明该代码是导致的ParseException。还是我在做超出 a 能力的事情JSONParser?不。JSON 解析器可以处理任何格式良好的JSON 。要解决这个问题,您需要找出解析器认为您的 JSON 不好的原因,然后回到问题的根本原因。1 - 例如,为什么要将JSONParser对象分配给类型为 的变量Object?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java