我将JSON库从org.json更改为Jackson,我想迁移以下代码:
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
以便在不是数组的情况下进行适当的错误处理?
不幸的是,我无法使用完整映射,因为数据无法固定字段名称。
—
KonradHöffner'13年
如果字段名称来自一组有限的名称,则您可能需要定义一个包含所有这些名称的类,并使用反序列化器的
—
2013年
FAIL_ON_UNKNOWN_PROPERTIES
功能来获取未使用的字段中返回的空值。但这当然只是字段名称设置相对有限的一种选择。
嗯,我认为此解决方案最不适合我的情况,但我会记住它,以防事先确定的有限套装出现问题!
—
康拉德·霍夫纳(KonradHöffner)