我有一個 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
提交
取消