如何从JsonNode数组中获取指定JsonObject?
问题解答
你的JsonNode本身是数组类型,要取出ObjectIWantToRetrieve对象,核心是先拿到数组里的第一个元素再获取目标对象,是否转成ArrayNode不是必须的,两种方式都可行:
不转换ArrayNode的写法:
直接通过JsonNode的索引获取数组元素,再取值:JsonNode targetObj = jsonNode.get(0).get("ObjectIWantToRetrieve");注意:要先判断数组是否为空(比如
jsonNode.size() > 0),避免空指针异常。转换为ArrayNode的写法:
强制转换后代码语义更清晰,也能使用ArrayNode的专属方法(比如size())做前置判断:ArrayNode arrayNode = (ArrayNode) jsonNode; if (arrayNode.size() > 0) { JsonNode targetObj = arrayNode.get(0).get("ObjectIWantToRetrieve"); }
另外提一句:你提供的JSON有语法错误,"key2": "val3"后面的]应该改成},否则会导致解析失败。
内容的提问来源于stack exchange,提问作者Blake
相关产品推荐
相关产品推荐

