java物件轉json的一點心得
阿新 • • 發佈:2019-02-15
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或者JSONArraypublic 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
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);
}