簡體   English   中英

如何在 Java 中解析多維 JSONString

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM