java使用jackson生成和解析JSON
java使用jackson生成和解析JSON
1.导包

2.生成json和解析json
package test; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import domain.Person;
import org.junit.Test; import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*; /**
* 2. Java对象转换JSON
* 1. 使用步骤:
* 1. 导入jackson的相关jar包
* 2. 创建Jackson核心对象 ObjectMapper
* 3. 调用ObjectMapper的相关方法进行转换
* 1. 转换方法:
* * writeValue(参数1,obj):
* 参数1:
* File:将obj对象转换为JSON字符串,并保存到指定的文件中
* Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
* OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
* * writeValueAsString(obj):将对象转为json字符串
* 使用jackSon生成解析jsom
* @date 2019/10/5 15:09
*/
public class Test1 {
@Test//生成json
public void test() throws IOException {
Person p=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(p);
/* *mapper.writeValue(参数1,obj): 1.File:将obj对象转换为JSON字符串,并保存到指定的文件中
* 2.Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
* 3.OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中*/
System.out.println(string);//{"name":"解析json","age":13,"gender":"男"} // 1.File:将obj对象转换为JSON字符串,并保存到指定的文件中
mapper.writeValue(new File("D://a.txt"),p);
// 2.Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
mapper.writeValue(new FileWriter("D://b.txt"),p);
}
@Test//json注解
public void test1() throws JsonProcessingException {
Person p=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date());
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(p);
System.out.println(string);
}
@Test//json复杂转换
public void test2() throws JsonProcessingException {
Person p=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date()); Person p1=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date()); Person p2=new Person();
p.setName("解析json");
p.setAge(13);
p.setGender("男");
p.setDate(new Date());
//集合
List<Person> PS=new ArrayList<>();
PS.add(p);
PS.add(p1);
PS.add(p2);
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(PS);
System.out.println(string);
}
@Test//json MAP生成json
public void test3() throws JsonProcessingException {
//创建map对象
Map<String,Object> map=new HashMap<>();
map.put("name","map");
map.put("age",11);
map.put("gender","男");
ObjectMapper mapper=new ObjectMapper();//先创建objmapper的对象
String string = mapper.writeValueAsString(map);
System.out.println(string);
}
@Test//json字符串转换为java对象
public void test4() throws IOException {
String json="{\"gender\":\"男\",\"name\":\"map\",\"age\":11}";
ObjectMapper mapper=new ObjectMapper();
Person person = mapper.readValue(json, Person.class);//有了对象就可以调用getXx和setXxx方法了
System.out.println(person);//打印一个person对象 Person{name='map', age=11, gender='男', date=null}
//这是一个json字符串{"name":"解析json","age":13,"gender":"男"}
}
}
3.person类
package domain; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.Date; public class Person {
private String name;
private int age;
private String gender;
//@JsonIgnore 转换时忽略 date字段
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date; @Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", date=" + date +
'}';
} 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;
} public Date getDate() {
return date;
} public void setDate(Date date) {
this.date = date;
}
}
java使用jackson生成和解析JSON的更多相关文章
- 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题
1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...
- fastjson生成和解析json数据,序列化和反序列化数据
本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<M ...
- fastjson生成和解析json数据
本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<M ...
- 转:JS中生成和解析JSON
原文地址:JS中生成和解析JSON 1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name ...
- java分享第十三天(fastjson生成和解析json数据,序列化和反序列化数据)
fastjson简介:Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack ...
- Android 利用Gson生成或解析json
目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https://code.google.com/p/google-gson/ 下载的放在lib并导入,若 ...
- Amdroid示例:利用Gson生成或解析json
转自:http://www.cnblogs.com/liqw/p/4266209.html 目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https: ...
- 使用JSONObject生成和解析json
1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组,以"[]"括起来 Object 对象,类似于C中的结构体 ...
- JS中生成和解析JSON
1.JS中生成JSON对象的方法: var json = []; var row1 = {}; row1.id= "1"; row1.name = "jyy"; ...
随机推荐
- UML-逻辑架构&包图-相关概念
1.逻辑架构 软件的宏观组织结构.含: 1).包 2).子系统 3).层 2.层 对类.包.子系统的分组(内聚).例如:mvc.在OOA/D中要重点关注核心应用逻辑(或领域)层. 3.UML包图 描述 ...
- 面试必问之http以及浏览器相关知识
/** 1.HTTP以及HTTPS概念 HTTP是超文本传输协议,是一个用于传输超媒体文档的应用层协议,被用于在web浏览器和网站服务器之间,以明文方式传递信息, 不提供任何方式的饿数据加密,因此使用 ...
- 小白学习之pytorch框架(3)-模型训练三要素+torch.nn.Linear()
模型训练的三要素:数据处理.损失函数.优化算法 数据处理(模块torch.utils.data) 从线性回归的的简洁实现-初始化模型参数(模块torch.nn.init)开始 from torc ...
- Web前端学习方向
第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...
- 大言不惭 swank? talk about sth or speak too confidently
cán,意思是指说大话而毫不感到难为情.出自<论语·宪问>:“子曰:‘其言之不怍,则为之也难.’”宋·朱熹注:“大言不惭,则无必为之志,而不自度其能否也.欲践其言,其不难哉!” 是不是类似 ...
- tomcat端口占用异常
错误记录--更改tomcat端口号方法,Several ports (8005, 8080, 8009) 2011年01月18日 01:34:00 阅读数:202700 启动Tomcat服务器报错: ...
- iOS仿写有妖气漫画、视频捕获框架、启动页广告页demo、多种动画效果等源码
iOS精选源码 以tableview的section为整体添加阴影效果/ta'b'le'vi'e'w顶部悬浮.... 一个可以轻松应用自定义过滤器的视频捕获框架. 基于UITableView的组件,旨 ...
- StartDT AI Lab | 视觉智能引擎+数据决策引擎——打造商业“智能沙盘”
众所周知,线上商家可以通过淘宝平台的大量前端“埋点”轻松获取商品的加购率.收藏率.转化率.成交额等大量基础信息,甚至商家能够在更精细的层面,获取商品关键字变化或者上新/爆款带来的流量变化数据,更甚者商 ...
- FPGA时序分析
更新于20180823 时序检查中对异步复位电路的时序分析叫做()和()? 这个题做的让人有点懵,我知道异步复位电路一般需要做异步复位.同步释放处理,但不知道这里问的啥意思.这里指的是恢复时间检查和移 ...
- hdu6582
题意:给定一个无向图,删除某些边有一定的代价,要求删掉使得最短路径减小,求最小代价. 分析:首先要spfa求出起点到各个点的最短距离.对于一条权值为w,起点为i,终点为j的边,设dis[k]为起点到k ...