JavaWeb:JSON对象和Java对象的相互转换
JSON解析器:常见的解析器:Jsonlib,Gson,fastjson,jackson
JSON转为Java对象
① 导入jackson的相关jar包
② 创建Jackson核心对象 ObjectMapper③ 调用ObjectMapper的相关方法进行转换:readValue(json字符串数据,Class)
④ 代码
JacksonTest.java
package cn.itcast.test;import cn.itcast.domain.Person; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test;import java.io.FileWriter; import java.util.*;public class JacksonTest {//演示 JSON字符串转为Java对象@Testpublic void test() throws Exception {//1.初始化JSON字符串String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":23}";//2.创建ObjectMapper对象ObjectMapper mapper = new ObjectMapper();//3.转换为Java对象 Person对象Person person = mapper.readValue(json, Person.class);System.out.println(person);}}
Java对象转换JSON(使用
jackson
)① 导入jackson的相关jar包
② 创建Jackson核心对象
ObjectMapper
③ 调用ObjectMapper的相关方法进行转换
转换方法:
① writeValue(参数1,obj):
参数1:
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
② writeValueAsString(obj):将对象转为json字符串注解:
@JsonIgnore:排除属性。
@JsonFormat:属性值得格式化
@JsonFormat(pattern = "yyyy-MM-dd")
复杂java对象转换
- List:数组
- Map:对象格式一致
④ 代码
Person.javapackage cn.itcast.domain;import com.fasterxml.jackson.annotation.JsonFormat;import java.util.Date;public class Person {private String name;private int age;private String gender;//@JsonIgnore // 忽略该属性@JsonFormat(pattern = "yyyy-MM-dd")private Date birthday;public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';} }
JacksonTest.java
package cn.itcast.test;import cn.itcast.domain.Person; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test;import java.io.FileWriter; import java.util.*;public class JacksonTest {//Java对象转为JSON字符串@Testpublic void test1() throws Exception {//1.创建Person对象Person p = new Person();p.setName("张三");p.setAge(23);p.setGender("男");//2.创建Jackson的核心对象 ObjectMapperObjectMapper mapper = new ObjectMapper();//3.转换/*转换方法:writeValue(参数1,obj):参数1:File:将obj对象转换为JSON字符串,并保存到指定的文件中Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中writeValueAsString(obj):将对象转为json字符串*/String json = mapper.writeValueAsString(p);//{"name":"张三","age":23,"gender":"男"}//System.out.println(json);//{"name":"张三","age":23,"gender":"男"}//writeValue,将数据写到d://a.txt文件中//mapper.writeValue(new File("d://a.txt"),p);//writeValue.将数据关联到Writer中mapper.writeValue(new FileWriter("d://b.txt"),p);}@Testpublic void test2() throws Exception {//1.创建Person对象Person p = new Person();p.setName("张三");p.setAge(23);p.setGender("男");p.setBirthday(new Date());//2.转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(p);System.out.println(json);//{"name":"张三","age":23,"gender":"男","birthday":1530958029263}//{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"}}@Testpublic void test3() throws Exception {//1.创建Person对象Person p = new Person();p.setName("张三");p.setAge(23);p.setGender("男");p.setBirthday(new Date());Person p1 = new Person();p1.setName("张三");p1.setAge(23);p1.setGender("男");p1.setBirthday(new Date());Person p2 = new Person();p2.setName("张三");p2.setAge(23);p2.setGender("男");p2.setBirthday(new Date());//创建List集合List<Person> ps = new ArrayList<Person>();ps.add(p);ps.add(p1);ps.add(p2);//2.转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(ps);// [{},{},{}]//[{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"},{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"},{"name":"张三","age":23,"gender":"男","birthday":"2018-07-07"}]System.out.println(json);}@Testpublic void test4() throws Exception {//1.创建map对象Map<String,Object> map = new HashMap<String,Object>();map.put("name","张三");map.put("age",23);map.put("gender","男");//2.转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(map);//{"name":"张三","age":23,"gender":"男"}System.out.println(json);//{"gender":"男","name":"张三","age":23}} }
JavaWeb:JSON对象和Java对象的相互转换相关推荐
- 7、JSON数据和Java对象的相互转换(客户端和服务器对象数据通讯用)
JSON数据和Java对象的相互转换 需要使用JSON解析器(它是封装好的工具类),我们测试用用jackson * 常见的解析器:Jsonlib,Gson(谷歌),fastjson(阿 ...
- JSON数据和Java对象的相互转换
* JSON解析器: * 常见的解析器:Jsonlib,Gson,fastjson,jackson 1. JSON转为Java对象 1. 导入jack ...
- json字符串与java对象的相互转换(jackson)
1.java对象转换为json字符串 package com.chichung.json;import com.fasterxml.jackson.core.JsonProcessingExcepti ...
- java中将json字符串_Java中JSON字符串与java对象的互换实例详解
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
- Java中JSON字符串与java对象的互换实例详解
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...
- json 解析 转java对象数组对象数组对象_json字符串转java对象数组
需要引入json-lib-2.2-jdk15.jar和ezmorph-1.0.6.jar包 String itemStar = request.getParameter("itemStar& ...
- Json对象与Json字符串的转化、JSON字符串与Java对象的转换
一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...
- json java typeof_Json对象与Json字符串的转化、JSON字符串与Java对象的转换
一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...
- 对象json字符串数组 java对象,java把json的字符串转换为json对象和数组
[Json--使用Json jar包实现Json字符串与Java对象或集合之间的互相转换] 1,[java将JSON字符串转换为实体类对象 @SuppressWarnings(unchecked)pu ...
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
总结一下利用Json相关jar包实现Java对象和集合与Json字符串之间的互相转换: 1.创建的User类: package com.ghj.packageofdomain;public class ...
最新文章
- golang中的strings.Compare
- 服务器端PHP多进程编程
- 在Chrome插件上获取当前插件的版本号
- JAX-RS 2.0:自定义内容处理
- [导入]Linq学习笔记(2.2)——深入DLinq查询
- 如何创建SQL Server日志传送
- 解读Linux下的password命令
- [高光谱] Hyperspectral-Classification Pytorch 的高光谱场景的通用类 HyperX
- Mac电脑卡在启动模式了怎么办?
- [FZYZOJ 1002] 雨天
- jquery实现div自适应浏览器高度
- ASM 知识(转自三思笔记)
- 基于51单片机的12864液晶显示4X4矩阵键盘程序仿真
- 使用JSON.parse字符串转换json报错解决办法
- VS2017 社区版 许可证过期
- OPTEE的进程间通信(Inter-Process Communication, IPC)
- Linux yum源文件
- 苏格拉底的爱情与婚姻观
- python nginx部署_nginx部署python应用
- 新加坡国立大学Xinchao Wang老师招收图神经网络方向博士/博后
热门文章
- 4.数据结构 --- 串
- 14.PHP核心技术与最佳实践 --- PHP 编码规范
- 48.Linux/Unix 系统编程手册(下) -- System V 共享内存
- 12. 程序扩展性(高级特性)
- 13. jQuery - 设置内容和属性
- 3.安装Discuz
- C# 匿名对象(匿名类型)、var、动态类型 dynamic
- 【笔记】生成函数与大背包问题
- 软件工程项目____搜查令
- JAVA 最新 环境搭建(JDK 1.8 + Tomcat 9 + eclipse oxygen + mysql 5.7)