文档章节

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();
	}

}

© 著作权归作者所有

共有 人打赏支持
A__17
粉丝 2
博文 100
码字总数 116076
作品 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
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
xStream完美转换XML、JSON

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

DavidBao
2015/05/01
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
1
0
12.17 Nginx负载均衡

Nginx负载均衡 下面的dig看到可以返回2个IP,就是解析出来的IP,这样我们可以做负载均衡。 dig www.qq.com 1.vim /usr/local/nginx/conf/vhost/fuzai.conf 2.添加如下配置 upstream qq //定义...

芬野de博客
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部