文档章节

Json与JavaBean的转换

A__17
 A__17
发布于 2017/08/21 22:57
字数 584
阅读 0
收藏 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
粉丝 2
博文 100
码字总数 117532
作品 0
朝阳
私信 提问
数据转换为json格式

一.使用Gson转换为json格式 依赖的maven包: com.google.code.gson gson 2.2.4 关键代码如下: import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gs......

101ttyy
2017/10/10
0
0
java解析json字符串详解(两种方法)

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

architect刘源源
11/07
0
0
JavaBean到XML和JSON的转换

XML和JSON是当今常用的两种数据描述与传输的格式,特别是涉及到JS时使用JSON颇为频繁。自然,在Java的世界里少不了完成JavaBean与这两种格式相互转换的组件,那就是XStream和JSON-lib。这里我...

Idiot_s_Sky
2014/01/14
0
0
xStream完美转换XML、JSON

xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换; 前面有介绍过json-lib这个框架,在线博文:http://www.cnblog...

ibm_hoojo
2011/04/22
0
0
后台数据传输-JSON

image.png 工作中经常要用到Json、JavaBean、Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考。现在主流的转换工具有Json-lib、Jackson、Fastjson、Gson等,我为大家一一做简单...

东东2866
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 有一天考拉麻麻拉肚子了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享周汇洋的单曲《Man Srae(曼斯拉之舞)》:美滋滋。。。。 手机党少年们想听歌,请使劲儿戳(这里) 我听了一下 赶紧关了, ...

小小编辑
58分钟前
32
4
oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
6
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
6
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
18
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部