FastJson JSONPath 路径取值用法与场景总结
FastJson JSONPath 路径取值用法与场景总结前言在日常后端开发中我们经常需要解析第三方接口返回的 JSON 数据。传统方式需要一层层getJSONObject()、getString()代码繁琐、可读性差、维护成本高。FastJson 提供的JSONPath可以通过路径表达式直接取值一行代码搞定复杂嵌套 JSON极大简化开发。一、JSONPath 常用使用场景场景1解析多层嵌套的第三方接口返回值最常用第三方接口返回的 JSON 往往嵌套很深例如{code:200,data:{result:{userInfo:{nickName:张三,phone:13800138000}}}}传统取值需要写json.getJSONObject(data).getJSONObject(result).getJSONObject(userInfo).getString(nickName);层级越多越麻烦还容易空指针。使用 JSONPath 只需要一行直接按路径取。场景2接口配置化、动态解析数据库配置路径当系统需要对接大量第三方接口时请求地址、请求头、请求体存在数据库响应的解析路径也存在数据库程序不需要为每个接口写硬编码解析逻辑只需要读取配置的 JSONPath 路径动态取值。新增接口 配一条记录零代码开发。场景3快速提取数组、列表中的字段JSON 里包含列表时例如{list:[{id:1,name:A},{id:2,name:B}]}可以直接取list[0].namelist[*].name不用遍历、不用循环一行拿到结果。场景4统一封装工具类避免重复代码项目中 JSON 解析无处不在把 JSONPath 封装成工具类所有模块复用代码更整洁。二、依赖配置你指定的版本dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.83/version/dependency三、最简演示代码你原版代码我帮你整理规范importcom.alibaba.fastjson.JSONObject;importcom.alibaba.fastjson.JSONPath;publicclassFastJsonPathDemo{publicstaticvoidmain(String[]args){// 1. 定义 JSON 字符串多层嵌套结构Stringjson{\data\:{\user\:{\name\:\张三\}}};// 2. 一行代码根据路径取值Stringname(String)JSONPath.eval(JSONObject.parseObject(json),data.user.name);// 3. 输出结果System.out.println(取值结果name);}}运行输出取值结果张三四、更多常用演示方便你复习1. 直接传 JSON 字符串更简单Stringname(String)JSONPath.eval(json,data.user.name);2. 取数字类型Stringjson{\data\:{\user\:{\age\:20}}};Integerage(Integer)JSONPath.eval(json,data.user.age);3. 取数组中某个字段Stringjson{\list\:[{\name\:\张三\},{\name\:\李四\}]};StringfirstName(String)JSONPath.eval(json,list[0].name);五、总结极简好记多层嵌套 JSON 取值一行搞定不用层层 get接口配置化平台路径存在数据库动态解析零代码扩展数组、复杂结构都支持代码简洁、易读、易维护
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2433505.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!