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. 阿里Java岗P5-P7成长笔记【3283页PDF文档】
  2. 智源青年科学家候选人 | 张祥雨:挑战自动化深度学习系统
  3. java容易混淆的知识点
  4. 全排列算法的全面解析
  5. ITK:注册IO工厂RegisterIOFactories
  6. 雪花算法原理_低照度摄像机原理及影响图像效果因素
  7. 7. 整数反转 golang
  8. Struts2 的Action 命名重复检测
  9. C语言指针超全面透析(原来你一直没有搞懂C语言指针是因为没有理解其中的规律)
  10. Silverlight 4处理StartWith的BUG
  11. eclipse 自动提示卡断问题
  12. 阿里云CDN、DCDN、SCDN的区别
  13. 解除 网课失去焦点/离开页面 就自动暂停 的限制
  14. php文件格式,php是什么文件格式
  15. sublime text3 verilog代码编写高级操作篇
  16. 那些一出口就很Low的话
  17. html页面中的快捷键设置
  18. 基于小程序制作一个猜拳小游戏
  19. 在微型计算机中1mb等于多少字节,字节换算-1mb等于多少kb
  20. 猎聘网2017年校园招聘研发类岗位笔试题

热门文章

  1. 为什么公司的运营都会有负债的出现?
  2. 无需括号的xss payload
  3. 用python定义两个元组_python学习笔记2---python中表示“组”的概念与定义
  4. Latex论文参考文献引用的获取
  5. 【陈工笔记】# latex中,“_”如何写? #
  6. 记事本编写html闪退,加载的时候出现一个记事本点确定就闪退了,萌新求解答...
  7. Stata数据处理:面板数据的填充和补漏
  8. 手机和电脑基于java的socket简单通信
  9. 激光点云构建地图(二)手动标注点云地图
  10. 全球与中国转底炉市场深度研究分析报告