[英]How to parse a mulidimensional JSONString in Java
我有一個 JSON 格式的String
,它有一個單一的鍵值對和一個由各種String
類型的鍵和值組成的Map
,如下所示:
"{"Key":"value","Map":{"key1":"val1","key2":"val2",...}}"
我想要做的是將此String
轉換為JSONObject
(因為我有其他代碼可以輕松解釋JSONObject
)。 我的第一直覺是使用解析器( JSONParser
),如下面的代碼片段...
JSONParser parser = new JSONParser();
Object o = new JSONParser();
o = (JSONObject) parser.parse(jsonStr);
JSONObject j = (JSONObject) o;
...但我得到了ParseException
而不是方便的JSONObject
。 這是為什么? 我應該區別對待String
,因為它里面有一個Map
嗎? 或者我做的事情超出了JSONParser
的能力?
...但我得到了
ParseException
而不是方便的JSONObject
。 這是為什么?
如果您收到ParseException
,則意味着您認為的 JSON(實際上)不是有效的 JSON。 這不是您的解析代碼或JSONObject
解析器的問題。 這要么是(假設的)JSON 最初生成方式的問題,要么是到達應該解析它的代碼的“通道”。
我應該以不同的方式對待字符串,因為它里面有一張地圖嗎?
不。
我注意到您的示例代碼片段不夠清晰/完整,無法准確說明您在做什么。 (將來,請提供一個真正的MCVE而不是沒有多大意義的代碼片段1 ...而且肯定無法編譯和運行。)但是沒有任何跡象表明該代碼是導致ParseException
。
或者我做的事情超出了
JSONParser
的能力?
不。 JSON 解析器可以處理任何格式良好的JSON。
要解決這個問題,您需要找出解析器認為您的 JSON 不好的原因,然后回到問題的根本原因。
1 - 例如,為什么JSONParser
對象分配給Object
類型的變量?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.