Jackson转换java对象与json对象
本文转载自:http://www.cnblogs.com/songzhen/p/5794494.html
一、导入jar包:
(因为之前使用的是jackson 1.x的jar包,所以在把json转换成list时候没有objectMapper.getTypeFactory()这个方法,而使用jackson 2.x的jar包会有)
jackson 1.x:jackson-all-1.7.6.jar(1个核心文件)
jackson 2.x:jackson-annotations-2.5.0.jar、jackson-core-2.5.0.jar、jackson-databind-2.5.0.jar(3个核心文件)
二、建立java对象User:
package com.cn.jackson.entity;public class User {private String name;private Integer age;private String address;public User(){}public User(String name, Integer age, String address) {super();this.name = name;this.age = age;this.address = address;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}
三、测试jackson 2.x的使用方法:
package com.cn.jackson.test;import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import com.cn.jackson.entity.User; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper;public class Test_2_x {public static void main(String[] args) {try {ObjectMapper objectMapper = new ObjectMapper();JsonGenerator jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);//对象转JSONUser user = new User("张三", 23, "深圳市");System.out.println("ObjectMapper方式");objectMapper.writeValue(System.out, user);//直接输出到控制台String userJsonStr = objectMapper.writeValueAsString(user);//返回字符串,输出 System.out.println(userJsonStr);System.out.println("JsonGenerator方式");jsonGenerator.writeObject(user);System.out.println();//map转JSONMap<String , Object> map = new HashMap<String ,Object>();map.put("one", new User("张", 12, "深圳"));map.put("two", new User("李", 22, "武汉"));map.put("three", new User("王", 32, "北京"));System.out.println("ObjectMapper方式");objectMapper.writeValue(System.out, map);//JsonGenerator方式同上//list转JSONList<User> list = new ArrayList<User>();list.add(new User("张", 12, "深圳"));list.add(new User("李", 22, "武汉"));list.add(new User("王", 32, "北京"));System.out.println("ObjectMapper方式");objectMapper.writeValue(System.out, list);//JsonGenerator方式同上//JSON转java对象:String json = "{\"name\":\"张三\",\"age\":23,\"address\":\"深圳市\"}";User zhang = objectMapper.readValue(json, User.class);System.out.println(zhang.getName()+"\n"+zhang.getAge()+"\n"+zhang.getAddress());//JSON转listString listJson = "[{\"name\":\"张三\",\"age\":21,\"address\":\"深圳\"},"+ "{\"name\":\"李四\",\"age\":11,\"address\":\"武汉\"},"+ "{\"name\":\"王五\",\"age\":31,\"address\":\"北京\"}]";JavaType javaType1 = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);List<User> userList = (List<User>)objectMapper.readValue(listJson, javaType1);for (User user1 : userList) {System.out.println(user1.getName()+"\t"+user1.getAge()+"\t"+user1.getAddress());}//JSON转mapString mapJson = "{\"one\":{\"name\":\"张三\",\"age\":21,\"address\":\"深圳\"},"+ "\"two\":{\"name\":\"李四\",\"age\":11,\"address\":\"武汉\"},"+ "\"three\":{\"name\":\"王五\",\"age\":31,\"address\":\"北京\"}}";JavaType javaType2 = objectMapper.getTypeFactory().constructParametricType(HashMap.class, String.class, User.class);Map<String,User> userMap = (Map<String,User>)objectMapper.readValue(mapJson, javaType2);User one = userMap.get("one");User two = userMap.get("two");User three = userMap.get("three");System.out.println(one.getName()+"\t"+one.getAge()+"\t"+one.getAddress());System.out.println(two.getName()+"\t"+two.getAge()+"\t"+two.getAddress());System.out.println(three.getName()+"\t"+three.getAge()+"\t"+three.getAddress());} catch (IOException e) {e.printStackTrace();}} }
四、测试jackson 1.x的使用方法:
package com.cn.jackson.test;import java.util.List; import java.util.Map;import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference;import com.cn.jackson.entity.User;public class Test_1_x {public static void main(String[] args) {try {//后面几种转换同Test_2_x一样 //对象转JSON //map转JSON //list转JSON //JSON转java对象//JSON转listObjectMapper objectMapper = new ObjectMapper();String listJson = "[{\"name\":\"张三\",\"age\":21,\"address\":\"深圳\"},"+ "{\"name\":\"李四\",\"age\":11,\"address\":\"武汉\"},"+ "{\"name\":\"王五\",\"age\":31,\"address\":\"北京\"}]";List<User> userList = objectMapper.readValue(listJson, new TypeReference<List<User>>() {});for (User user1 : userList) {System.out.println(user1.getName()+"\t"+user1.getAge()+"\t"+user1.getAddress());}//JSON转mapString mapJson = "{\"one\":{\"name\":\"张三\",\"age\":21,\"address\":\"深圳\"},"+ "\"two\":{\"name\":\"李四\",\"age\":11,\"address\":\"武汉\"},"+ "\"three\":{\"name\":\"王五\",\"age\":31,\"address\":\"北京\"}}";Map<String,User> userMap = objectMapper.readValue(mapJson, new TypeReference<Map<String,User>>() {});User one = userMap.get("one");User two = userMap.get("two");User three = userMap.get("three");System.out.println(one.getName()+"\t"+one.getAge()+"\t"+one.getAddress());System.out.println(two.getName()+"\t"+two.getAge()+"\t"+two.getAddress());System.out.println(three.getName()+"\t"+three.getAge()+"\t"+three.getAddress());} catch (Exception e) {// TODO: handle exception }} }
Jackson转换java对象与json对象相关推荐
- java 视图对象转换,使用spring boot开发时java对象和Json对象转换的问题_JavaScript_网络编程...
将java对象转换为on对象,市面上有很多第三方jar包,如下: jackson(最常用) com.fasterxml.jackson.core jackson-databind 2.11.2 gso ...
- java对象和json对象之间互相转换
2019独角兽企业重金招聘Python工程师标准>>> import java.util.ArrayList; import java.util.Collection; import ...
- jsp 将java对象转json对象 (自定义EL函数)
功能:在 jsp 页面将 java对象 转换为 json对象 (使用自定义EL函数实现) 步骤: 1. 创建 JSP EL 工具类 2. 创建 tld 文件 3. 配置 web.xml 文件 4. 完 ...
- json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...
json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...
- Java对象转换为Json对象
前言 曾几何时,XML是程序员的宠儿,是数据传输.API.AJAX应用等方面的不二选择,但自从JSON横空出世后,或者你会发觉你身边就有很多人开始抛弃XML,在他们的心目中,JSON已经完全取代了XM ...
- java对象与json对象间的相互转换的方法
String json=JSON.toJSONString(user);//关键 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如下. 1 JSON ...
- java map转JSON对象
java map转JSON对象 net.sf.json.JSONObject.fromObject(map)
- java对象与json对象间的相互转换
工程中所需的jar包,因为在网上不太好找,所以我将它放到我的网盘里了,如有需要随便下载. 点击下载 1.简单的解析json字符串 首先将json字符串转换为json对象,然后再解析json对象,过程如 ...
- JavaScript对象、JSON对象、JSON字符串的区别
一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...
- SpringBoot将自定义对象转JSON对象问题研究
SpringBoot JSON序列化自定义对象研究 1. 问题描述 1.1 工程代码 1.2 测试 2. 问题分析 2.1 初步分析结论 2.2 实验验证结论 2.3 问题拓展 3. 结论 摘要(干货 ...
最新文章
- 分布式全局序列号生产,Twitter Snowflake算法,雪花算法
- 开发日记-20190529 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
- Asp.Net Core 2.0 多角色权限认证
- leetcode 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
- Python数据类型-元组类型
- lamp mysql5.0_CentOS 5/6 LAMP(Apache MySQL PHP)一键安装脚本
- window7安装MongoDB详细步骤
- 将数据库返回的ResultSett转换成List装Map形式的方法(ResultSetToList)
- 软件工程概论个人总结
- oracle函数应用,oracle函数应用
- php js 交互(js调用PHP代码执行)
- word文档添加多个目录
- react 工程启动运行时,报错Content not from webpack is served from ...
- linux马达驱动程序,一种Linux系统的微型针式打印机及其驱动方法与流程
- 使用PlatformIO IDE开发Arduino如何安装和调用外部库文件【基于Visual Studio Code平台】
- 利用Rustlings对Rust语言进行学习
- 解决右键点击文件反应很慢 (可解决文件夹,以及各种exe,快捷方式,图片,txt等文件) 【亲测有效】
- Apache web服务器目录结构、发布网站
- 好用的Android软件汇总
- 做网站注意事项,网站建设标准流程