java - 获取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 数据的任何帮助。
解决方案
您需要从 JsonNode 获取 ArrayList。这是您的解决方案。
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(json);
String sender = jsonNode.get(0).get("sender").textValue();
推荐阅读
- ember.js - 灰烬和柏树 | 集成测试失败可能是由于缺少商店上下文
- java - 默认@Transactional 如何在低级别工作?
- azure - 从 MSAL2.5 调用方法后,导航后 UI 不呈现
- angular - Angular Material 和嵌套 mat-form-field 的 CSS 问题:内部 mat-form-field 处于错误状态导致父级看起来处于错误状态
- firefox - Selenium::WebDriver::Error - 使用 WATIR 进行拖放操作
- python - 在 Windows 上安装旧版 TensorFlow(.whl 文件)
- qt - 如何在 Windows 中识别 USB 摄像头?
- caching - 缓存大小和块大小是多少?
- python-3.x - How do I get the values in my dictionary that I have created in python, to be used, instead of the strings?
- reactjs - 当我通过列表映射时,React-bootstrap 模态组件打开/关闭所有模态