首页 > 解决方案 > 获取String值的ArrayList的值

问题描述

请我有包含以下值的列表

[ { "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 数据的任何帮助。

标签: javaarraysjacksonjava-streamjackson-databind

解决方案


您需要从 JsonNode 获取 ArrayList。这是您的解决方案。

ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(json);
String sender = jsonNode.get(0).get("sender").textValue();

推荐阅读