1. 程式人生 > >java物件轉json的一點心得

java物件轉json的一點心得

1、java物件轉json格式無非就是可以有兩種方式,一種是框架,一種是用一些開源的封裝好的json jar包。

首先說下如何利用框架吧,框架本人熟悉的就兩種,一種是strtus2,strtus2無非就是將要轉化為json的資料,放到我們設定的bean中,然後通過值棧可以自動轉化為json格式的資料,springmvc就是利用@ResponseBody這個註解,將資料轉化為json,方式同strtus2一樣。

2、封裝好的json 包,本人接觸過的有兩個,一個JSONObject,這個坑死了,對於複雜的json bean轉化會報錯,所以我放棄了,後來改用了阿里巴巴的fastjson,目前這個還沒有發現有什麼問題,需要的java包一個,

那麼我現在簡單介紹下他的API把

2、主要的使用入口 Fastjson API入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態方法直接完成。 public static final Object parse(String text); // 把JSON文字parse為JSONObject或者JSONArray 
public static final 
JSONObject parseObject(String text); // 把JSON文字parse成JSONObject    
public static final 
<T> T parseObject(String text, Class<T> clazz); // 把JSON文字parse為JavaBean 

public static final 
JSONArray parseArray(String text); // 把JSON文字parse成JSONArray 
public static final 
<T> List<T> parseArray(String text, Class<T> clazz); //把JSON文字parse成JavaBean集合 
public static final 
String toJSONString(Object object); // 將JavaBean序列化為JSON文字 
public static final 
String toJSONString(Object object, boolean
 
prettyFormat); // 將JavaBean序列化為帶格式的JSON文字 
public static final 
Object toJSON(Object javaObject); 將JavaBean轉換為JSONObject或者JSONArray。 3、有關類庫的一些說明 SerializeWriter:相當於StringBuffer JSONArray:相當於List<Object> JSONObject:相當於Map<String, Object> JSON反序列化沒有真正陣列,本質型別都是List<Object> 4、fastjson還有很多很高階的特性,比如支援註解、支援全型別序列化,這些都是很好的特性,功能強大,不在本次測試範圍。 5、上傳自己的幾個測試案例
@Test
	public void BeanToJson(){
	
		Person p1=new Person();
		p1.setId(0);
		p1.setName("nike");
		String str = JSON.toJSONString(p1);
		System.out.println(str);
		
	}
	
	@Test
	public void listToJson(){
		List <Person>list=new ArrayList<>();
		Person p1=new Person();
		p1.setId(0);
		p1.setName("nike");
		Person p2=new Person();
		p2.setId(1);
		p2.setName("linda");
		list.add(p2);
		list.add(p1);
		String str = JSON.toJSONString(list);
		System.out.println(str);
	}
	
	@Test
	public void mapToJson(){
		Map<String, Object> map=new HashMap<String, Object>();
		List <Person>list=new ArrayList<>();
		Person p1=new Person();
		p1.setId(0);
		p1.setName("nike");
		Person p2=new Person();
		p2.setId(1);
		p2.setName("linda");
		list.add(p2);
		list.add(p1);
		map.put("list", list);
		map.put("total", 1);
		String str = JSON.toJSONString(map);
		System.out.println(str);
	}