我改變從org.json傑克遜我的JSON庫,我想遷移以下代碼:傑克遜如何將JsonNode轉換爲ArrayNode而不投射?
JSONObject datasets = readJSON(new URL(DATASETS));
JSONArray datasetArray = datasets.getJSONArray("datasets");
現在在傑克遜我有以下幾點:
ObjectMapper m = new ObjectMapper();
JsonNode datasets = m.readTree(new URL(DATASETS));
ArrayNode datasetArray = (ArrayNode)datasets.get("datasets");
但是我不知道像那裏的演員一樣,有沒有可能是ClassCastException
? org.json
有沒有相當於getJSONArray
的方法,這樣我就有適當的錯誤處理,以防它不是數組?
不幸的是,我不能使用完整的映射,因爲數據不固定字段名稱。 –
如果字段名稱來自有限集合,您可能需要定義一個以所有這些集合爲特徵的類,並使用解串器的'FAIL_ON_UNKNOWN_PROPERTIES'功能獲取未使用字段中返回的空值。但是,如果字段名稱集相對有限,那當然只是一個選項。 – fvu
嗯,我認爲這個解決方案並不適合我的情況,但我會記住它,以防我會遇到預先知道的有限集合的問題! –