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

JSON 2016-08-22 23:50:48 52390

JSON  是目前流行的交换数据格式,经常有童鞋问我, json-lib  怎么操作 JSON  jackson  怎么操作 JSON  Goson  怎么操作 JSON  等等,本篇介绍 json-lib  的各种操作。

其他的 JSON  信息都在这里:https://www.sojson.com/tag_json.html

json-lib  的jar包引入:https://www.sojson.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("https://www.sojson.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":"https://www.sojson.com","name":"张三"}
}

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

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

/**
 * JSON-Lib JSON转对象
 */
@Test
public void json2entity() {
	/*
	 * 刚刚的字符串
	 * {"age":10,"domain":"https://www.sojson.com","name":"张三"} 
	 * 但是我们要转义双引号,可以用网址  https://www.sojson.com/yasuo.html
	 */
	String jsonStr = "{\"age\":10,\"domain\":\"https://www.sojson.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":"https://www.sojson.com","name":"张三"}
}

二、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","https://www.sojson.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":"https://www.sojson.com","name":"张三"}
	
}

2、JSON转Map

/**
 * JSON-Lib JSON转Map
 */
@Test
public void json2map() {
	/*
	 * 刚刚的字符串
	 * {"age":10,"domain":"https://www.sojson.com","name":"张三"} 
	 * 但是我们要转义双引号,可以用网址  https://www.sojson.com/yasuo.html
	 */
	String jsonStr = "{\"age\":10,\"domain\":\"https://www.sojson.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":"https://www.sojson.com"}
}

三、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("https://www.sojson.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": "https://www.sojson.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":"https://www.sojson.com","name":"张三"},{"age":25,"domain":"http://ping.sojson.com","name":"李四"}]
	String jsonArrayStr = "[{\"age\":10,\"domain\":\"https://www.sojson.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":"https://www.sojson.com","name":"张三"},{"age":25,"domain":"http://ping.sojson.com","name":"李四"}]
	 */
}

这里有一个注意的地方,就是JSONArray.toList()这个方法是过期的。但是不影响使用。

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


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/100.html

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


附件下载:

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

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
json对象json字符串的转换方法
java json字符串转json对象
Java 解析JSONJSON-LIB jar包下载和使用。
Java 随机从 List 随机获取多个不重复对象,Mysql 随机10条数据
JSON文件如何转换为txt文件
Java API接口返回不是JSON的解决方案,SpringMVC返回JSON配置。
Java面向对象编程概念
Java JSON 组件选型之 FastJson 为什么总有漏洞?
Java面向对象编程概念
Jackson 转换JSON,SpringMVC ajax 输出,当值为null或者空不输出字段@JsonInclude
最新文章
Linux I/O重定向 1767
Ruby 循环 - while、for、until、break、redo 和 retry 711
Node.js:全局对象 517
如何使用终端检查Linux上的内存使用情况 635
JavaScript对象详细剖析 300
Python print() 函数 409
PHP if/else/elseif 语句 407
HTML5 Canvas弧线教程 387
Java赋值运算符 431
XML内部实体和外部实体 464
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 686836
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 675081
免费天气API,天气JSON API,不限次数获取十五天的天气预报 615722
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 611113
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 555623
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 510028
Elasticsearch教程(四) elasticsearch head 插件安装和使用 481399
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 269205
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244787
Elasticsearch教程(一),全程直播(小白级别) 227489
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...