私はジャクソンに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
の可能性はありますか? getJSONArray
に相当するメソッドがorg.json
にあるので、配列でない場合に適切なエラー処理ができますか?
データが固定フィールド名ではないため、残念ながらフルマッピングを使用できません。 –
フィールド名が限定されたものである場合は、それらのすべてを扱うクラスを定義し、デシリアライザの 'FAIL_ON_UNKNOWN_PROPERTIES'機能を使用して、未使用フィールドに返されたヌル値を取得するだけです。しかし、フィールド名セットが比較的限定されている場合は、もちろんオプションに過ぎません。 – fvu
私はこのソリューションが私の場合には最適ではないと思いますが、事前に知られている限られたセットで問題が発生する場合に備えて覚えています! –