Java tojson,Java中json-lib的各種數據轉換,及對象轉換

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

JSON  是目前流行的交換數據格式,經常有童鞋問我, json-lib  怎么操作 JSON  , jackson  怎么操作 JSON  , Goson  怎么操作 JSON  等等,本篇介紹 json-lib  的各種操作。

其他的 JSON  信息都在這里:http://www.380127.tw/tag_json.html

json-lib  的jar包引入:http://www.380127.tw/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://www.380127.tw");
	
	//對象轉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://www.380127.tw","name":"張三"}
}

這里是一個普通的自定義的 Java  Bean 對象轉換。

2、JSON字符串轉成Java Bean 對象。

/**
 * JSON-Lib JSON轉對象
 */
@Test
public void json2entity() {
	/*
	 * 剛剛的字符串
	 * {"age":10,"domain":"http://www.380127.tw","name":"張三"} 
	 * 但是我們要轉義雙引號,可以用網址  http://www.380127.tw/yasuo.html
	 */
	String jsonStr = "{\"age\":10,\"domain\":\"http://www.380127.tw\",\"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://www.380127.tw","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","http://www.380127.tw");
	//對象轉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://www.380127.tw","name":"張三"}
	
}

2、JSON轉Map

/**
 * JSON-Lib JSON轉Map
 */
@Test
public void json2map() {
	/*
	 * 剛剛的字符串
	 * {"age":10,"domain":"http://www.380127.tw","name":"張三"} 
	 * 但是我們要轉義雙引號,可以用網址  http://www.380127.tw/yasuo.html
	 */
	String jsonStr = "{\"age\":10,\"domain\":\"http://www.380127.tw\",\"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://www.380127.tw"}
}

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

這里有一個注意的地方,就是JSONArray.toList()這個方法是過期的。但是不影響使用。

json-lib  介紹到這里就完畢了。然后下面有附件是json-lib 的Jar包。


版權所屬:SO JSON在線解析

原文地址:http://www.380127.tw/blog/100.html

轉載時必須以鏈接形式注明原始出處及本聲明。


附件下載:

備注:點擊文件名下載,附件源來自云端,只能在本站下載。復制下載鏈接無效。

本文主題:

如果本文對你有幫助,那么請你贊助我,讓我更有激情的寫下去,幫助更多的人。

關于作者
一個低調而悶騷的男人。
相關文章
Java 隨機從 List 隨機獲取多個不重復對象,Mysql 隨機10條數據
Java 解析JSON,JSON-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數據... ...
最新文章
QUIC / HTTP3 協議詳細分析講解 1249
恭喜那個做云存儲的七牛云完成 F 輪 10 億人民幣的融資,開啟新的云旅程 1882
Autojs怎么安全加密?Autojs在線加密工具注意事項。 2790
Java JSON 組件選型之 FastJson 為什么總有漏洞? 8439
使用七牛云存儲實現圖片API,自動刪除圖片方案合集 2500
神速ICP備案經驗分享,ICP備案居然一天就通過了 3888
百度加強推送URL鏈接,百度SEO強行推送鏈接JavaScript代碼案例講解。 4097
SOJSON 拓展服務器被DDos攻擊了一晚上,是如何解決的? 4854
湖南地區備案“新增網站需提交組網方案或解釋說明”,關于備案做簡單敘述 5205
企查查你是個什么企業,騙子的幫兇,詐騙的集中營,通過企查查騷擾企業電話不斷,為所欲為的企查查 12120
最熱文章
蘋果電腦Mac怎么恢復出廠系統?蘋果系統怎么重裝系統? 465976
我為什么要選擇RabbitMQ ,RabbitMQ簡介,各種MQ選型對比 433471
免費天氣API,全國天氣 JSON API接口,可以獲取五天的天氣預報 364558
最新MyEclipse8.5注冊碼,有效期到2020年 (已經更新) 357741
免費天氣API,天氣JSON API,不限次數獲取十五天的天氣預報 321955
Elasticsearch教程(四) elasticsearch head 插件安裝和使用 239326
Jackson 時間格式化,時間注解 @JsonFormat 用法、時差問題說明 203752
談談斐訊路由器劫持,你用斐訊路由器,你需要知道的事情 147303
Elasticsearch教程(一),全程直播(小白級別) 127662
Java 信任所有SSL證書,HTTPS請求拋錯,忽略證書請求完美解決 105420

騷碼加入我們 / 千人QQ群:259217951

入群需要5元為的是沒有垃圾廣告,如果沒有QQ錢包,可以加群主拉進。

二維碼生成 來自 >> 二維碼生成器。

支付掃碼

所有贊助/開支都講公開明細,用于網站維護:贊助名單查看

查看我的收藏

正在加載... ...

时时乐上海走势图连线