更换Jackson JsonNode库后getFields()报错,fields()是否可行?
问题解答
你使用fields()方法完全正确,它就是org.codehaus.jackson(Jackson 1.x)中JsonNode.getFields()在com.fasterxml.jackson.databind(Jackson 2.x)里的等效替代方法。
关键说明
- 旧版codehaus Jackson的
JsonNode.getFields()方法,在Jackson 2.x(即fasterxml分支)中被重命名为fields(),两者功能完全一致:都会返回一个迭代器,遍历当前JSON节点的所有键值对字段,迭代器的泛型类型同为Iterator<Entry<String, JsonNode>>。 - 你替换后报错消失,也验证了这个方法的兼容性,它的行为和原方法没有差异,可以放心在代码中使用。
代码修改示例
原代码:
private static String convertColumnsNamesToFieldNames(SFObjectModel model, JsonNode node, HashMap<String, String> aliasMap) { Iterator<Entry<String, JsonNode>> iter = node.getFields();
修改后正确代码:
private static String convertColumnsNamesToFieldNames(SFObjectModel model, JsonNode node, HashMap<String, String> aliasMap) { Iterator<Entry<String, JsonNode>> iter = node.fields();
内容的提问来源于stack exchange,提问作者Soumya Naidu
相关产品推荐
相关产品推荐

