文档章节

Json与JavaBean的转换

A__17
 A__17
发布于 2017/08/21 22:57
字数 584
阅读 1
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

maven依赖:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.1.22</version>
</dependency>

举例:

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.JSON;

/**
 * 如果对象的属性没有被赋值,那么将对象转换为json串时:
 *
 * 		字符串类型的属性:	默认会忽略该属性
 * 		Integer类型的属性:	默认会忽略该属性
 * 		Date类型的属性:	        默认会忽略该属性
 * 		int类型的属性:		默认会被转换为0
 */
public class TestFastJson {

	public static void main(String[] args) {
		
		User obj1 = new User();  
		obj1.setAge(1);  
		obj1.setName("jack");
		
		User obj2 = new User();  
		obj2.setAge(2);  
		obj2.setName("tom");
		obj2.setTime(new Date());
		
		ArrayList<User> arrayObj = new ArrayList<User>();
		arrayObj.add(obj1);
		arrayObj.add(obj2);
		
		
		// 将对象转换为json串  
		String jsonString1 = JSON.toJSONString(obj1);	// {"age":1,"name":"jack"}
		String jsonString2 = JSON.toJSONString(arrayObj);	// [{"age":1,"name":"jack"},{"age":2,"name":"tom","time":1503289848086}]
		
		// 将json串转换为对象类型  
		User user = JSON.parseObject(jsonString1, User.class); 
		List<User> userList = JSON.parseArray(jsonString2, User.class); 
		
	}
}

maven依赖:

<dependency>
	<groupId>net.sf.json-lib</groupId>
	<artifactId>json-lib</artifactId>
	<version>2.3</version>
	<classifier>jdk15</classifier>
</dependency>

举例:

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

/**
 * 如果对象的属性没有被赋值,那么将对象转换为json串时:
 *
 * 		字符串类型的属性:		默认会被转换为空串""
 * 		int、Integer类型的属性:	默认会被转换为0
 * 		Date类型的属性:			默认会被转换为null
 *
 */
public class TestSfJson {

	public static void main(String[] args) {
		
		// 1.普通对象转换为json串
		User obj1 = new User();
		obj1.setName("jack");
		obj1.setAge(17);
		
		JSONObject jsonObj1 = JSONObject.fromObject(obj1);
		String jsonStr1 = jsonObj1.toString();
		System.out.println(jsonStr1);	// {"age":17,"name":"jack"}
		
		// 2.设置Date类型属性值的处理策略
		Employee obj2 = new Employee();
		obj2.setName("jack");
		obj2.setAge(17);
		obj2.setBirthday(new Date());
		
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
		
		JSONObject jsonObj2 = JSONObject.fromObject(obj2,jsonConfig);
		String jsonStr2 = jsonObj2.toString();
		System.out.println(jsonStr2);	// {"age":17,"birthday":"2017-08-21 11:04:47","name":"jack"}
		
		// 3.数组对象转换为json串
		User user1 = new User();
		user1.setName("jack");
		user1.setAge(17);
		User user2 = new User();
		user2.setName("tom");
		user2.setAge(18);
		
		List<User> obj3 = new ArrayList<User>();
		obj3.add(user1);
		obj3.add(user2);
		// 或:User[] obj3 = {user1,user2};
		
		JSONArray jsonObj3 = JSONArray.fromObject(obj3);
		String jsonStr3 = jsonObj3.toString();
		System.out.println(jsonStr3);	// [{"age":17,"name":"jack"},{"age":18,"name":"tom"}]
		
		// 4.直接构造JSONObject对象
		JSONObject jsonObj = new JSONObject();
		jsonObj.put("name", "jack");
		jsonObj.put("age", 17);
		String jsonStr = jsonObj.toString();
		System.out.println(jsonStr);	// {"name":"jack","age":17} 
		
	}
}


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class JsonDateValueProcessor implements JsonValueProcessor {

	private String format = "yyyy-MM-dd HH:mm:ss";

	public JsonDateValueProcessor() {
		super();
	}

	public JsonDateValueProcessor(String format) {
		super();
		this.format = format;
	}

	[@Override](https://my.oschina.net/u/1162528)
	public Object processArrayValue(Object paramObject, JsonConfig paramJsonConfig) {
		return process(paramObject);
	}

	[@Override](https://my.oschina.net/u/1162528)
	public Object processObjectValue(String paramString, Object paramObject, JsonConfig paramJsonConfig) {
		return process(paramObject);
	}

	private Object process(Object value) {
		if (value instanceof Date) {
			SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.CHINA);
			return sdf.format(value);
		}
		return value == null ? "" : value.toString();
	}

}

© 著作权归作者所有

下一篇: Servlet监听器
A__17
粉丝 3
博文 121
码字总数 149658
作品 0
朝阳
私信 提问
加载中

评论(0)

java FastJson的使用总结

1.前言 1.1.FastJson的介绍: (javaScript Object Notation)是一种轻量级的数据交换格式。主要采用键值对()的方式来保存和表示数据。是对象的字符串表示法,它使用文本表示一个对象的信息,本...

osc_3rgq3dae
2019/08/20
1
0
高性能JSON框架之FastJson的简单使用

1.前言 1.1.FastJson的介绍: JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: F...

osc_mtv7lwgr
2018/05/05
4
0
JavaBean和json数据之间的转换(二)含有date类型的JavaBean

1.前言   上次讲了简单的JavaBean和json格式之间的转换,代码很简单,但是实际过程中,往往用到的JavaBean都是比较复杂的,其他的字段还好,如果JavaBean中包含了date类型的字段,就会比较...

osc_ll50uphu
2019/02/11
1
0
java解析json字符串详解(两种方法)

一、使用JSONObject来解析JSON数据 官方提供的,所以不需要导入第三方jar包;直接上代码,如下 步骤解读:      定义一个JSON数组,用于将服务器返回的数据传入到一个JSONArray对象中;...

architect刘源源
2018/11/07
634
0
JavaBean和json数据之间的转换(一)简单的JavaBean转换

  1.为什么要使用json?     JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,因为其高性能、可读性强的原因,成为了现阶段web开发中前后端交互数据的主要数据格式   ...

osc_xngmlta7
2019/01/10
1
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 头发和不要头发,你总要选一个

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《雾 缀じた街 ふたつのかげ》- Porkkana 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
41
0
一道 算法题 引发的 ‘xx现场’

请 熟悉的语言 去 验证 在输入框中输入的是否是一个正确的网址 初次读题萌新有点 不知所措的样子一查 MDN 吓一跳 ----- 一个不怎么熟悉的方法跳出眼边URL() 构造函数返回一个新创建的 ...

酒窝yun过去了
今天
19
0
如何检查jQuery中是否已选中复选框? - How to check whether a checkbox is checked in jQuery?

问题: I need to check the checked property of a checkbox and perform an action based on the checked property using jQuery. 我需要检查复选框的checked属性,并使用jQuery根据check......

技术盛宴
今天
12
0
mongoose 使用

http://www.mongoosejs.net/ 编写MongoDB验证,转换和业务逻辑是非常麻烦的. 所以Mongoose应运而生了. const mongoose = require('mongoose');mongoose.connect('mongodb://localhost/te......

东东笔记
今天
30
0
微服务

什么是微服务? 使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且他们可以通过自动化的方式部署。 微服务的特征 单一职责 轻量级通信 ...

鸿FW
今天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部