前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java对象与JSON字符串互相转换

Java对象与JSON字符串互相转换

作者头像
全栈程序员站长
发布2022-11-08 15:55:27
4.3K0
发布2022-11-08 15:55:27
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

目录

一、Java对象转为JSON字符串

二、JSON字符串转为Java对象

JSON解析器,常见的解析器:Jsonlib,Gson,fastjson,jackson 介绍:Jackson

一、Java对象转为JSON字符串

1、引入需要的Jackson所需要的jar包(三个)

Java对象与JSON字符串互相转换
Java对象与JSON字符串互相转换

2、创建一个Person类(代码见后面)

  • 注解1,@JsonIgnore 作用:排除属性
  • 注解2,@JsonFormat 作用:属性值的格式化(日期等处理)

3、创建Jackson核心对象,ObjectMapper,用来转换

方法1,writeValue(参数1,参数2)

参数1介绍

File 将obj对象转换为JSON字符串,并保存到指定的文件中 Writer 将obj对象转换为JSON字符串,并将json数据填充到字节输出流中 OutputStream 将obj对象转换为JSON字符串,并将json数据填充到字节输出流中

  1. File 将obj对象转换为JSON字符串,并保存到指定的文件中
  2. Writer 将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
  3. OutputStream 将obj对象转换为JSON字符串,并将json数据填充到字节输出流中

参数2介绍

就是需要转换成JSON字符串的对象

方法2,writeValueAsString(obj) obj就是需要转换成JSON字符串的对象

4、实例测试

Person.java

代码语言:javascript
复制
package com.json.pojo;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 一个人的对象类
 * @author xuexue
 *
 */
public class Person {
	//姓名
	private String name;
	
	//年龄
	private int age;
	
	//地址
	private String address;
	
	//日期
	@JsonFormat(pattern = "yyyy/MM/dd hh:mm:ss")
	private Date date;

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.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 getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", address=" + address + ", date=" + date + "]";
	}

	
}

Testt.java测试类(输出结果在注释上)

代码语言:javascript
复制
package com.json.test;


import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import org.junit.jupiter.api.Test;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.json.pojo.Person;

/**
 * Person对象转为JSON字符串
 * @author xuexue
 *
 */
public class Testt {
	
	@Test
	public void test() throws JsonProcessingException {
		//1、创建Person对象
		Person person = new Person();
		person.setName("张三");
		person.setAge(20);
		person.setAddress("河源市");
		person.setDate(new Date());
		
		//2、创建Jackson核心对象,ObjectMapper
		ObjectMapper mapper = new ObjectMapper();

		//3、person对象转为JSON字符串
		String valueAsString = mapper.writeValueAsString(person);
		System.out.println(valueAsString);//{"name":"张三","age":20,"address":"河源市","date":"2019/09/05 10:36:27"}
	}
	
	@Test
	public void test2() throws JsonProcessingException {
		//1、创建Map集合
		HashMap<String, Object> map = new HashMap<>();
		map.put("name", "lisi");
		map.put("age", 33);
		map.put("address", "河源");
		
		
		//2、创建Jackson核心对象,ObjectMapper
		ObjectMapper mapper = new ObjectMapper();

		//3、person对象转为JSON字符串
		String valueAsString = mapper.writeValueAsString(map);
		System.out.println(valueAsString);//{"address":"河源","name":"lisi","age":33}
	}
	
	@Test
	public void test3() throws JsonProcessingException {
		//1、创建Map集合
		List<Person> list = new ArrayList<Person>();
		list.add(new Person());
		list.add(new Person());
		list.add(new Person());
		
		
		//2、创建Jackson核心对象,ObjectMapper
		ObjectMapper mapper = new ObjectMapper();

		//3、person对象转为JSON字符串
		String valueAsString = mapper.writeValueAsString(list);
		System.out.println(valueAsString);//[{"name":null,"age":0,"address":null,"date":null},{"name":null,"age":0,"address":null,"date":null},{"name":null,"age":0,"address":null,"date":null}]
	}
}

二、JSON字符串转为Java对象

1、创建JSON字符串

2、创建Jackson核心对象

3、调用readValue方法进行转换,参数1是需要转换的json字符串,参数2是转换后的对象的字节码对象

代码语言:javascript
复制
	@Test
	public void test4() throws IOException {
		//1、创建JSON串
		String json = "{\"address\":\"河源\",\"name\":\"lisi\",\"age\":33}";
		//2、创建Jackson核心对象,ObjectMapper
		ObjectMapper mapper = new ObjectMapper();

		//3、JSON字符串转为Person对象
		Person person = mapper.readValue(json, Person.class);
		System.out.println(person);//[{"name":null,"age":0,"address":null,"date":null},{"name":null,"age":0,"address":null,"date":null},{"name":null,"age":0,"address":null,"date":null}]
	}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/191007.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月21日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Java对象转为JSON字符串
  • 二、JSON字符串转为Java对象
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档