JSON 字符串是如何被解析的?JsonParser 了解一下
版本约定
- Jackson 版本:
2.11.0
- Spring Framework 版本:
5.2.6.RELEASE
- Spring Boot 版本:
2.3.0.RELEASE
小贴士:截止到本文,本系列前面所有示例都只仅仅导入
jackson-core
而已,后续若要新增 jar 包我会额外说明,否则相同
什么叫读 JSON?就是把一个 JSON 字符串 解析为对象 or 树模型嘛,因此也称作解析 JSON 串。Jackson 底层流式 API 使用JsonParser
来完成JSON 字符串的解析。
最简使用 Demo
准备一个 POJO:
@Data
public class Person {private String name;private Integer age;
}
测试用例:把一个 JSON 字符串绑定(封装)进一个 POJO 对象里
@Test
public void test1() throws IOException {String jsonStr = "{\"name\":\"YourBatman\",\"age\":18}";Person person = new Person();JsonFactory factory = new JsonFactory();try (JsonParser jsonParser = factory.createParser(jsonStr)) {// 只要还没结束"}",就一直读while (jsonParser.nextToken() != JsonToken.END_OBJECT) {String fieldname = jsonParser.getCurrentName();if ("name".equals(fieldname)) {jsonParser.nextToken();person.setName(jsonParser.getText());} else if ("age".equals(fieldname)) {jsonParser.nextToken();person.setAge(jsonParser.getIntValue());}}System.out.println(person);}
}
运行程序,输出:
Person(name=YourBatman, age=18)
成功把一个 JSON 字符串的值解析到 Person 对象。你可能会疑问,怎么这么麻烦?那当然,这是底层流式 API,纯手动档嘛。你获得了性能,可不要失去一些便捷性嘛。
小贴士:底层流式 API 一般面向“专业人士”,应用级开发使用高阶 API
ObjectMapper
即可。当然,读完本系列就能让你完全具备“专业人士”的实力JSON 字符串是如何被解析的?JsonParser 了解一下相关推荐
- 4. JSON字符串是如何被解析的?JsonParser了解一下
公司不是你家,领导不是你妈.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BA ...
- php curl get utf 8,curl get获取到一个utf-8 json字符串,用json_decode解析说格式不对。...
$ch = curl_init();//初始化curl curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFE ...
- mysql解析json_mysql解析简单json字符串
很多时候,我们需要在sql里面直接解析json字符串.这里针对mysql5.7版本的分水岭进行区分. 1.对于mysql5.7以上版本 使用mysql的内置函数JSON_EXTRACT(column, ...
- Gson解析json字符串,并封装成ListT
最近一个项目中,需要将从服务器上获取到的JSON字符串转换为对象,大概研究了一下,发现在项目中很多地方都要用到,而且有的时候需要返回的是一个集合,所以写了个方法,留着自用. public class ...
- ajax post 表单和 json 字符串
在使用 koa2 的中间件 koa-bodyparser 解析客户端发来的 json 字符串时,发现解析异常,分析后发现,这锅 koa 不背,是发送 post 请求的问题. [发送表单] $.ajax ...
- 也谈C#之Json,从Json字符串到类代码
也谈C#之Json,从Json字符串到类代码 原文:也谈C#之Json,从Json字符串到类代码 阅读目录 json转类对象 逆思考 从json字符串自动生成C#类 json转类对象 自从.net ...
- json字符串、json对象、数组之间的转换
记录一下 json字符串转化成json对象 // jquery的方法 var jsonObj = $.parseJSON(jsonStr) //js 的方法 var jsonObj = JSON.pa ...
- 【JSON教科书】什么是JSON,JSON字符串有什么作用?(JSON学习总结)
文章目录 @[toc] 一.了解Json 3.1 什么是Json 二.简单Json语法 2.1 语法 3.2.1 Json语法记忆规则 三.Json字符串的手写转换 JavaBean类对象 Json简 ...
- Java(24):GSON - JsonParser将 JSON 字符串解析为 Java 对象的树结构
GSONJsonParser类可以将 JSON 字符串或流解析为 Java 对象的树结构. 解析过程中会用到:JsonParse,JsonElement,还有 JsonObject 和 JsonArr ...
最新文章
- 如何啃下C++这块复杂又难学的硬骨头?
- JS 设计模式四 -- 模块模式
- android生成大分辨率图片,自动生成Android不同分辨率下的图片
- 大数据入门(一)-大数据概念和特点(1)
- mysql数据库比较,各数据库不同之处
- MySQL8安装,初始化,登录和修改密码
- mysql 表死锁_MySQL Innodb表导致死锁日志情况分析与归纳
- docker中使用的镜像加速器可以自己生成
- selenium学习一
- SQL 语句语法简介(一)
- 一个canvas的demo
- swift 第三方库SwiftyJSON
- GPRS DTU是什么?其工作原理是什么? (转自aerkate)
- 三维动画在计算机上的应用,计算机图技术在三维动画中的应用.doc
- 使用opencv读取rtsp流的图片帧进行目标检测,并将处理好的图像推到rtsp服务器上
- 如何检查您附近(或任何地方)的空气质量
- fuz--2128(最长子串)
- H5浏览器下无插件、低延时、RTSP视频流直播
- stata学习笔记|异方差问题
- Python图片处理模块PIL(pillow)
热门文章
- 让Windows XP也能自动登录
- 考研英语核心词汇梳理三
- 【cs224n学习作业】Assignment 1 - Exploring Word Vectors
- Redis内存分析工具之redis-rdb-tools的安装与使用
- 如何解决java中的安全问题_如何解决java中“使用了未经检查或不安全的操作 请使用 -Xlint:unchecked 重新编译 ”的问题...
- Mac 端口号8080被占用
- 2022杭电多校赛第八场
- CSS - 移动端布局(一)关键的前置知识
- docker创建容器
- yolanda的性能测试经验