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"; ...
随机推荐
- this关键字使用注意事项
1.当局部变量和成员变量重名时 ,java会启用就近原则,为了区分成员变量,最好再成员变量中加上this(this.成员变量),this的最主要的作用就是处理成员变量和局部变量重名的问题 例如,set ...
- Java 10按钮设计(awt)
/** * 2019年8月9日08:03:41 * 目的:利用Java设计10个按钮 * @author 张涛 * */ //导入awt包 import java.awt.*; import java ...
- 【转】我们为什么要使用 Markdown
目录 从前码字时我们面临着什么困境 标记语言显神威 到底什么是 Markdown 所以为什么我们要使用 Markdown Markdown 简明语法 段落和换行 标题 区块引用 列表 强调 代码标识和 ...
- gcc -S xx
编译器的核心任务是把C程序翻译成机器的汇编语言(assembly language).汇编语言是人类可以阅读的编程语言,也是相当接近实际机器码的语言.由此导致每种 CPU 架构都有不同的汇编语言. 实 ...
- HTML5中的data-*属性
data-* 属性包括两部分: 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符: 属性值可以是任意字符串: 注释:用户代理会完全忽略前缀为 &qu ...
- Opencv笔记(十七)——轮廓性质
边界矩形的宽高比 x,y,w,h = cv2.boundingRect(cnt) aspect_ratio = float(w)/h Extent Extent就是轮廓面积与边界矩形面积的比. are ...
- linux 添加常用长命令别名
## 设置linux下常用命令别名,提高效率 将要使用的命令别名写入到~/.bashrc文件,通过source ~/.bashrc命令使变更生效 alias sst='systemctl status ...
- sql server 重命名表名,字段名
重命名表名: exec sp_rename 'oldName','newName'; 重命名字段名: exec sp_rename 'tableName.[oldName]','newName','c ...
- 吴裕雄--天生自然C语言开发:指针
#include <stdio.h> int main () { int var1; ]; printf("var1 变量的地址: %p\n", &var1 ) ...
- 401认证钓鱼demo
<?php //@b4dboy if(!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) ...