溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Json與JavaBean怎么轉(zhuǎn)換

發(fā)布時間:2021-08-19 09:56:45 來源:億速云 閱讀:136 作者:chen 欄目:云計算

這篇文章主要講解了“Json與JavaBean怎么轉(zhuǎn)換”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Json與JavaBean怎么轉(zhuǎn)換”吧!

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;

/**
 * 如果對象的屬性沒有被賦值,那么將對象轉(zhuǎn)換為json串時:
 *
 * 		字符串類型的屬性:	默認會忽略該屬性
 * 		Integer類型的屬性:	默認會忽略該屬性
 * 		Date類型的屬性:	        默認會忽略該屬性
 * 		int類型的屬性:		默認會被轉(zhuǎn)換為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);
		
		
		// 將對象轉(zhuǎn)換為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串轉(zhuǎn)換為對象類型  
		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;

/**
 * 如果對象的屬性沒有被賦值,那么將對象轉(zhuǎn)換為json串時:
 *
 * 		字符串類型的屬性:		默認會被轉(zhuǎn)換為空串""
 * 		int、Integer類型的屬性:	默認會被轉(zhuǎn)換為0
 * 		Date類型的屬性:			默認會被轉(zhuǎn)換為null
 *
 */
public class TestSfJson {

	public static void main(String[] args) {
		
		// 1.普通對象轉(zhuǎn)換為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.設(shè)置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.數(shù)組對象轉(zhuǎn)換為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.直接構(gòu)造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();
	}

}

感謝各位的閱讀,以上就是“Json與JavaBean怎么轉(zhuǎn)換”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Json與JavaBean怎么轉(zhuǎn)換這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI