| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> REST Assured 44 - Fetch Value From JSON Object Using JsonNode – Jackson – Get() & Path() Methods -> 正文阅读 |
|
[大数据]REST Assured 44 - Fetch Value From JSON Object Using JsonNode – Jackson – Get() & Path() Methods |
REST Assured 系列汇总 之 REST Assured 44 - Fetch Value From JSON Object Using JsonNode – Jackson – Get() & Path() Methods介绍当需要解析长的,嵌套的 JSON,用创建 POJO 类的方式不太方便,我们需要用 tree 结构更佳。 前提条件Required Java Library 因为我们用到 Jackson API, 所以确保导入 Jackson Databind 依赖包。
Tree representation of JSON ObjectJSON Object
树形结构: 我们需要用到 Jackson API 中的 ObjectMapper 类,该类提供的 “readTree()” 方法负责反序列化 deserialize JSON 内容成树形表现形式的一系列 JsonNode 实例。 我们通过 JsonNode 类的 get() 和 path() 方法来获取值,然后转换成适合的数据类型。
输出:
观察上面的使用的方法 asText(), asBoolean() 就是为了解析成合适的值。如果不确实值的准确数据类型,可以通过类似 isTextual(), isBoolean() 方法帮助。
如果将值解析成错误的数据类型,将不会抛出一个异常。例如:使用 asBoolean() 方法将一个 String 解析成一个 boolean,根据官方 Jackson API Java 文档,会有如下情况: asBoolean() 方法将这个node的值转换成 boolean,JSON booleans 的映射关系是,integer 非零对应 true,0 对应 false; String ‘true’ 和 ‘false’ 分别对应布尔的 true 和 false。如果对象不能转换成一个 boolean 值 (包括 Arrays 和 Objects),默认会返回一个 false,不会抛异常。 asLong() 也类似, 该方法将 node 值转换成一个 Java long类型。数字采用强制转换规则, booleans 值 false 转换成 0, true 为 1. String 类型按默认的 Java 语言整数规则解析。如果对象不能转换成一个 loing 值 (包括 Arrays 和 Objects),默认会返回一个 0,不会抛异常。 Retrieving value for a non-existing node当用 get() 方法获取一个不存在的 node 的值时,将会得到 NullPointerException 异常。
可以用这些重写方法 asText(String defaultValue), asInt(int defaultValue) 来处理不期望的 null 值。但是使用这些方法必须使用 get() 方法的替代方法 path() 方法。因为上面用 get() 将会得到 NullPointerException 异常。 根据官方文档 path() 方法类似 get(String) 方法,除了如果 node 不存在时不会返回 null (由于这个node不是一个 object,或则是没有具体字段的 Object), 一个 “missing node” 将会返回,所以通过 path() 方法更安全。
上面代码将输出一个 NullPointerException 异常。
上面代码将输出 “” 空字符串 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 11:21:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |