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和字符串直接的转换相关推荐

  1. 使用Jackson实现json格式字符串与obj之间的转换

    文章目录 1. json字符串简介 2. 转换工具 3. json与obj相互转换 2.1 obj转json字符串 2.2 json字符串转obj 2.3 转换为List类型 2.4 转化为Map类型 ...

  2. Json与字符串之间的转换

    后端 1.JSONObject 1.字符串转为json对象 String jsonStr = "{\"school\":\"商职\",\"s ...

  3. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  4. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...

    json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...

  5. fastjson 检测json格式_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换...

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  6. JSON对象与字符串之间的转换

    JSON对象与字符串之间的转换 JSON转换成字符串 字符串转换成JSON JavaScript中内置了一个JSON对象,可以用来进行JSON与字符串之间的转换. JSON转换成字符串 使用:JSON ...

  7. python中字符串和json的转换,Python笔记——json和字符串之间的相互转换

    json和字符串之间的转换,主要使用到json库中的json.loads()函数json.dumps()含函数. 所以我们首先要导入json库. import json 一.字符串转为json,使用 ...

  8. 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 ...

  9. Jackson - 将 JSON字符串转换为 List

    将 JSON 数组字符串转换为List使用的方法: // JSON array string // [{"name":"mkyong", "age&q ...

最新文章

  1. 钉钉内部视频遭曝光:疯子无招“逼疯”产品经理
  2. MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)
  3. 汇编访问计算机端口,汇编总结(2):中断、端口、直接定址表
  4. 《WinForm开发系列之控件篇》Item33 NotifyIcon(暂无)
  5. 关于ssl免费证书设置
  6. Mac 的mysql5.7没有配置文件,如何解决only_full_group_by 问题
  7. 手动挡五个档位示意图_★手动挡汽车档位图解
  8. HBase与Zookeeper数据结构查询
  9. Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析
  10. 广东理工学院计算机考试大纲,广东理工学院2020年专插本《电工电子技术》考试大纲...
  11. 恒生UFX交易接口基本介绍说明
  12. android实现跳转支付宝微信支付,Android接入支付宝和微信支付的方法
  13. 2021年N1叉车司机考试题及N1叉车司机考试试卷
  14. idea出现outdated version提示框
  15. Win7 EFS 加密文件图解
  16. python中perf_counter_Python time.perf_counter()用法及代码示例
  17. linux常用命令:iconv 命令(用于文件的编码转换),还可以用UE另存
  18. 游戏服务器维修怎么回事,游戏服务器维护都是在做些什么?
  19. java教材管理系统,基于web的教材管理系统
  20. 局域网网络流量监控_18个监控网络带宽的Linux命令行工具

热门文章

  1. 逆向随笔——对可以过TP的注入驱动的一次逆向
  2. CF--998D. Roman Digits
  3. 晨枫U盘维护工具的ISOLINUX模式可加载磁盘映像的探索及USB-ROM引导后安装系统的相关问题
  4. 未激活的Windows11的壁纸更改方法(亲测有用)
  5. 半导体衰落超出想象,会熊市反弹? – 25 年来 71 家公司的库存分析
  6. JavaScript插件开发
  7. Top-K Off-Policy Correction for a REINFORCE Recommender System
  8. 专访长亮科技李劲松:17年金融IT服务商的海外新机遇
  9. 兄弟服务器系统打印机驱动,兄弟(Brother)HL-5450DN打印机驱动
  10. 蓝桥侦探[蓝桥杯]——种类并查集