用jackson实现json和字符串直接的转换
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
maven
<dependencies><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.6.2</version></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml --><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.7.6</version></dependency> </dependencies>
需要转换的json数据
{"username": "zhangsan","性别": "男","company": {"companyName": "中华","address": "北京"},"cars": ["奔驰","宝马"],"logList": [{"id": 123,"name": "abc"},{"id": 234,"name": "efff"}]
}
Java调用
package test;
import java.util.List;
import java.util.Map;import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
/*** 日志类* @author Administrator**/
class Log{private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "log [id=" + id + ", name=" + name + "]";}}
public class JacksonTest {public static void main(String[] args) throws Exception {String json = "{\"username\":\"zhangsan\",\"性别\":\"男\",\"company\":{\"companyName\":\"中华\",\"address\":\"北京\"},\"cars\":[\"奔驰\",\"宝马\"],\"logList\":[{\"id\":123,\"name\":\"abc\"},{\"id\":234,\"name\":\"efff\"}]}"; //System.out.println(json);ObjectMapper mapper = new ObjectMapper();JsonNode rootNode = mapper.readTree(json);JsonNode usernameNode = rootNode.path("username");String username = mapper.writeValueAsString(usernameNode);System.out.println("==username==");System.out.println(username);//转换成类型,Map类型,同样Integer,String,List,也可以同样处理JsonNode companyNode = rootNode.path("company");String company = mapper.writeValueAsString(companyNode); Map<String,Object> companyMap = mapper.readValue(company, Map.class);System.out.println("==company==");System.out.println(companyMap);//转换成List<Log>,类型JsonNode logListNode = rootNode.path("logList");String logJson = mapper.writeValueAsString(logListNode);JavaType logType = mapper.getTypeFactory().constructParametricType(List.class, Log.class);List<Log> logList = mapper.readValue(logJson, logType);System.out.println("==logList==");System.out.println(logList); }}
打印出结果
==username==
"zhangsan"
==company==
{companyName=中华, address=北京}
==logList==
[log [id=123, name=abc], log [id=234, name=efff]]
用jackson实现json和字符串直接的转换相关推荐
- 使用Jackson实现json格式字符串与obj之间的转换
文章目录 1. json字符串简介 2. 转换工具 3. json与obj相互转换 2.1 obj转json字符串 2.2 json字符串转obj 2.3 转换为List类型 2.4 转化为Map类型 ...
- Json与字符串之间的转换
后端 1.JSONObject 1.字符串转为json对象 String jsonStr = "{\"school\":\"商职\",\"s ...
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...
- json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...
json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...
- fastjson 检测json格式_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换...
fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...
- JSON对象与字符串之间的转换
JSON对象与字符串之间的转换 JSON转换成字符串 字符串转换成JSON JavaScript中内置了一个JSON对象,可以用来进行JSON与字符串之间的转换. JSON转换成字符串 使用:JSON ...
- python中字符串和json的转换,Python笔记——json和字符串之间的相互转换
json和字符串之间的转换,主要使用到json库中的json.loads()函数json.dumps()含函数. 所以我们首先要导入json库. import json 一.字符串转为json,使用 ...
- Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(Can not deserialize value of type Date from String)
1.问题排查 出现的场景: 服务端通过springmvc写了一个对外的接口,返回一个json字符串,其中该json带有日期,格式为yyyy-MM-dd HH:mm:ss 客户端通过feign调用该ht ...
- Jackson - 将 JSON字符串转换为 List
将 JSON 数组字符串转换为List使用的方法: // JSON array string // [{"name":"mkyong", "age&q ...
最新文章
- 钉钉内部视频遭曝光:疯子无招“逼疯”产品经理
- MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)
- 汇编访问计算机端口,汇编总结(2):中断、端口、直接定址表
- 《WinForm开发系列之控件篇》Item33 NotifyIcon(暂无)
- 关于ssl免费证书设置
- Mac 的mysql5.7没有配置文件,如何解决only_full_group_by 问题
- 手动挡五个档位示意图_★手动挡汽车档位图解
- HBase与Zookeeper数据结构查询
- Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析
- 广东理工学院计算机考试大纲,广东理工学院2020年专插本《电工电子技术》考试大纲...
- 恒生UFX交易接口基本介绍说明
- android实现跳转支付宝微信支付,Android接入支付宝和微信支付的方法
- 2021年N1叉车司机考试题及N1叉车司机考试试卷
- idea出现outdated version提示框
- Win7 EFS 加密文件图解
- python中perf_counter_Python time.perf_counter()用法及代码示例
- linux常用命令:iconv 命令(用于文件的编码转换),还可以用UE另存
- 游戏服务器维修怎么回事,游戏服务器维护都是在做些什么?
- java教材管理系统,基于web的教材管理系统
- 局域网网络流量监控_18个监控网络带宽的Linux命令行工具
热门文章
- 逆向随笔——对可以过TP的注入驱动的一次逆向
- CF--998D. Roman Digits
- 晨枫U盘维护工具的ISOLINUX模式可加载磁盘映像的探索及USB-ROM引导后安装系统的相关问题
- 未激活的Windows11的壁纸更改方法(亲测有用)
- 半导体衰落超出想象,会熊市反弹? – 25 年来 71 家公司的库存分析
- JavaScript插件开发
- Top-K Off-Policy Correction for a REINFORCE Recommender System
- 专访长亮科技李劲松:17年金融IT服务商的海外新机遇
- 兄弟服务器系统打印机驱动,兄弟(Brother)HL-5450DN打印机驱动
- 蓝桥侦探[蓝桥杯]——种类并查集