【发布时间】:2019-03-08 09:59:41
【问题描述】:
请给我一个包含以下值的列表
[ { "sender" : "sys" , "message" : [ "Hello, " , "how are you?"] ,"transaction_date" : { "$date" : "2019-02-14T17:34:12.705Z"} , "has_suggestions" : true } , { "sender" : "user" , "message" : [ "Hello." , "hey you"] , "visited" : true , "transaction_status" : "Succeded" , "transaction_date" : { "$date" : "2019-02-14T17:34:12.705Z"} , "has_suggestions" : true , "suggestion_list" : [ "Yes, I am." , "No, I am not."] , "suggestion_list_type" : "buttons"}, { "sender" : "sys" , "message" : { "has_form" : true , "form_type" : "prehandover_form" , "data" : { "text" : [ "Kindly provide your info"]}} , "visited" : false , "transaction_status" : "Succeded" , "transaction_date" : { "$date" : "2019-02-14T17:34:15.386Z"}}]
我尝试在代码下方使用 Jackson JsonNode 遍历 JSON 数据的内容:
ObjectMapper object = new ObjectMapper();
JsonNode jsonNode = object.readTree(value);
String sender = jsonNode.get("sender").textValue();
但是在线程“main”java.lang.NullPointerException 中出现异常 非常感谢您对遍历 JSON 数据的任何帮助。
【问题讨论】:
-
你有一个json数组,读
jsonNode.get(0).get("sender") -
你收到一个数组而不是一个对象
-
在执行
JsonNode jsonNode = object.readTree(value);之后,jsonNode将包含一个数组。jsonNode.get("sender")将返回 null。您对数组中的哪些元素感兴趣? -
你的 JSON 混合了
Key: value和Key: Array -
@vizsatiz,感谢这种方法有效。
标签: java arrays jackson java-stream jackson-databind