![](/img/trans.png)
[英]Create a JSONObject in a JSONArray (JSON-Simple / JAVA)
[英]How to tell if return is JSONObject or JSONArray with JSON-simple (Java)?
我正在尋求服務,有時會得到這樣的東西:
{ "param1": "value1", "param2": "value2" }
有時會像這樣得到回報:
[{ "param1": "value1", "param2": "value2" },{ "param1": "value1", "param2": "value2" }]
我怎么知道我得到了什么? 當我執行getClass()時,它們都評估為String但是如果我嘗試這樣做:
json = (JSONObject) new JSONParser().parse(result);
在第二種情況下,我得到一個例外
org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject
怎么避免這個? 我想知道如何檢查我要回來的。 (第一種情況有時候會有[]
,所以我不能做索引,而且我想要一種更清潔的方式,而不僅僅是檢查第一個字符。
必須有某種方法來檢查這個?
簡單的Java:
Object obj = new JSONParser().parse(result);
if (obj instanceof JSONObject) {
JSONObject jo = (JSONObject) obj;
} else {
JSONArray ja = (JSONArray) obj;
}
您還可以測試(聲稱的)JSON是否以[
或者{
如果您想避免解析錯誤類型的JSON的開銷)開始。 但要注意領先的空白。
雖然它與上面的類似,但它們不是JSONParser的默認構造函數。 出現錯誤是:構造函數JSONParser()未定義
請改用它
JsonElement jsonElement = new JsonParser().parse(jsonString);
if (jsonElement.isJsonArray()) {
//Your Code
} else {
//Your Code
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.