Java tojson,Java中json-lib的各类数据转换,及对象转换

soゝso 2016-08-22 23:50:48 17531

JSON  是今朝风行的交换数据格局,常常有童鞋问我, json-lib  怎样操作 JSON  jackson  怎样操作 JSON  Goson  怎样操作 JSON  等等,本篇简介 json-lib  的各类操作。

其他的 JSON  信息都在这里:http://exergyanc.com/tag_json.html

json-lib  的jar包引入:http://exergyanc.com/blog/101

一、json-lib的JSON和JavaBean的相互转换。

1、自定义Java Bean 转JSON对象。

/**
 * JSON-Lib 对象转JSON
 */
@Test
public void entity2json() {
	//构建一个对象
	JSONModel model = new JSONModel();
	model.setAge(10);
	model.setName("张三");
	model.setDomain("http://exergyanc.com");
	
	//对象转JSON
	JSONObject json = JSONObject.fromObject(model);
	//转成String
	String jsonStr = json.toString();
	System.out.printf("json-lib,对象转JSON:%s",jsonStr);
	//json-lib,对象转JSON:{"age":10,"domain":"http://exergyanc.com","name":"张三"}
}

这里是一个浅显的自定义的 Java  Bean 对象转换。

2、JSON字符串转成Java Bean 对象。

/**
 * JSON-Lib JSON转对象
 */
@Test
public void json2entity() {
	/*
	 * 方才的字符串
	 * {"age":10,"domain":"http://exergyanc.com","name":"张三"} 
	 * 然则我们要转义双引号,可以用网址  http://exergyanc.com/yasuo.html
	 */
	String jsonStr = "{\"age\":10,\"domain\":\"http://exergyanc.com\",\"name\":\"张三\"}";
	
	//JSON字符串转JSON对象
	JSONObject json = JSONObject.fromObject(jsonStr);
	//JSON对象 转 JSONModel对象
	JSONModel model = (JSONModel) JSONObject.toBean(json, JSONModel.class);
	
	//转成String 便利输入
	System.out.printf("json-lib,JSON转对象:%s",JSONObject.fromObject(model).toString());
	//json-lib,JSON转对象:{"age":10,"domain":"http://exergyanc.com","name":"张三"}
}

2、json-lib的JSON和Map的相互转换。

1、Map转JSON。

/**
 * Map 转 JSON 
 */
@Test
public void map2json(){
	Map map = new HashMap();
	map.put("age",10 );
	map.put("name","张三");
	map.put("domain","http://exergyanc.com");
	//对象转JSON
	JSONObject json = JSONObject.fromObject(map);
	//转成String
	String jsonStr = json.toString();
	System.out.printf("json-lib,Map转JSON:%s",jsonStr);
	//json-lib,Map转JSON:{"age":10,"domain":"http://exergyanc.com","name":"张三"}
	
}

2、JSON转Map

/**
 * JSON-Lib JSON转Map
 */
@Test
public void json2map() {
	/*
	 * 方才的字符串
	 * {"age":10,"domain":"http://exergyanc.com","name":"张三"} 
	 * 然则我们要转义双引号,可以用网址  http://exergyanc.com/yasuo.html
	 */
	String jsonStr = "{\"age\":10,\"domain\":\"http://exergyanc.com\",\"name\":\"张三\"}";
	
	//JSON字符串转JSON对象
	JSONObject json = JSONObject.fromObject(jsonStr);
	//JSON对象 转 JSONModel对象
	Map model = (Map) JSONObject.toBean(json, Map.class);
	
	//转成String 便利输入
	System.out.printf("json-lib,JSON转Map:%s",JSONObject.fromObject(model).toString());
	//json-lib,JSON转Map:{"name":"张三","age":10,"domain":"http://exergyanc.com"}
}

3、json-lib的JSONArray和List的相互转换。

1.List转JSONArray。

/**
 * JSON-Lib List转JSONArray
 */
@Test
public void list2JSONArray() {
	//创建一个List
	List list = new ArrayList();
	JSONModel model = new JSONModel();
	model.setAge(10);
	model.setName("张三");
	model.setDomain("http://exergyanc.com");
	list.add(model);
	
	model = new JSONModel();
	model.setAge(25);
	model.setName("李四");
	model.setDomain("http://ping.sojson.com");
	list.add(model);
	
	//List 转 JSONArray
	JSONArray jsonArray = JSONArray.fromObject(list);
	//JSONArray 转 String
	String jsonArrayStr = jsonArray.toString();
	//输入
	System.out.printf("JSON-Lib List转JSONArray:%s",jsonArrayStr);
	//JSON-Lib List转JSONArray:
	/*
		[
		    {
		        "age": 10,
		        "domain": "http://exergyanc.com",
		        "name": "张三"
		    },
		    {
		        "age": 25,
		        "domain": "http://ping.sojson.com",
		        "name": "李四"
		    }
		]

	 */
}

2.JSONArray转List。

/**
 * JSON-Lib JSONArray转List
 */
@SuppressWarnings("unchecked")
@Test
public void jsonArray2List(){
	//方才的JSON字符串
	//[{"age":10,"domain":"http://exergyanc.com","name":"张三"},{"age":25,"domain":"http://ping.sojson.com","name":"李四"}]
	String jsonArrayStr = "[{\"age\":10,\"domain\":\"http://exergyanc.com\",\"name\":\"张三\"},{\"age\":25,\"domain\":\"http://ping.sojson.com\",\"name\":\"李四\"}]";
	
	//json字符串转成JSONArray
	JSONArray jsonArray = JSONArray.fromObject(jsonArrayStr);
	
	//JSONArray 转 List
	List list = JSONArray.toList(jsonArray, JSONModel.class);
	
	//输入
	System.out.printf("JSON-Lib JSONArray转List:\n%s",JSONArray.fromObject(list).toString());
	/*
	 JSON-Lib JSONArray转List:
	 [{"age":10,"domain":"http://exergyanc.com","name":"张三"},{"age":25,"domain":"http://ping.sojson.com","name":"李四"}]
	 */
}

这里有一个留意的处所,就是JSONArray.toList()这个办法是过时的。然则不影照应用。

json-lib  简介到这里就终了了。然后下面有附件是json-lib 的Jar包。


版权所属:SO JSON在线解析

原文地址:http://exergyanc.com/blog/100.html

转载时必须以链接情势注明原始出处及本声明。


附件下载:

备注:点击文件名下载,附件源来自云端,只能在本站下载。复制下载链接有效。

本文主题:

假设本文对你有赞助,那么请你赞助我,让我更有豪情的写下去,赞助更多的人。

关于作者
一个低调而闷骚的汉子。
相干文章
Java 随机从 List 随机获得多个不反复对象,Mysql 随机10条数据
Java 解析JSONJSON-LIB jar包下载和应用。
Elasticsearch Java API 获得version,和数据_version的简介
Elasticsearch教程(八) elasticsearch delete 删除数据Java
Java获得域名,Java从URL地址获得域名,Java从Request 获得域名
Jackson 转换JSON,SpringMVC ajax 输入,当值为null或许空不输入字段@JsonInclude
Java的经常使用对象(POJO、DTO、PO、BO、VO、DAO)详细解释及应用处景
Java API接口前往不是JSON的处理筹划,SpringMVC前往JSON设备。
Java Cookie 操尴尬刁难象类
Jackson 美化输入JSON,优雅的输入JSON数据,格局化输入JSON数据... ...
最新文章
Java JSON 组件选型之 FastJson 为甚么总有马脚? 472
应用七牛云存储完成图片API,主动删除图片筹划合集 1416
神速ICP立案经历分享,ICP立案居然一天就经过过程了 2397
百度加强推送URL链接,百度SEO强行推送链接JavaScript代码案例讲解。 3067
SOJSON 拓展办事器被DDos进击了一早晨,是若何处理的? 3436
湖南地区立案“新增网站需提交组网筹划或解释解释”,关于立案做简单论述 3511
企查查你是个甚么企业,骗子的帮凶,欺骗的集中营,经过过程企查查骚扰企业德律风赓续,为所欲为的企查查 9883
Java爬取百度云不雅测对网站的检测数据,获得子域名及域名的安然信息 2613
【2020年】百度搜刮词获得,获得百度搜刮的关键词【真实有效】 7564
Nodejs情况装置,Nodejs情况装置一篇就够了 1879
最热文章
苹果电脑Mac怎样恢复出厂体系?苹果体系怎样重装体系? 436523
我为甚么要选择RabbitMQ ,RabbitMQ简介,各类MQ选型比较 419641
收费气象API,全国气象 JSON API接口,可以获得五天的气象预告 352338
最新MyEclipse8.5注册码,有效期到2020年 (曾经更新) 316776
收费气象API,气象JSON API,不限次数获得十五天的气象预告 291289
Elasticsearch教程(四) elasticsearch head 插件装置和应用 223600
Jackson 时间格局化,时间注解 @JsonFormat 用法、时差成绩解释 181537
谈谈斐讯路由器劫持,你用斐讯路由器,你须要知道的任务 137053
Elasticsearch教程(一),全程直播(小白级别) 120486
Elasticsearch教程(五) elasticsearch Mapping的创建 99614

骚码参加我们 / 千人QQ群:259217951

入群须要5元为的是没有渣滓告白,假设没有QQ钱包,可以加群主拉进。

二维码生成 来自 >> 二维码生成器

付出扫码

一切赞助/开支都讲地下通细,用于网站保护:赞助名单检查

检查我的收藏

正在加载... ...