大佬教程收集整理的这篇文章主要介绍了FastJSON 常用操作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
下载地址:https://github.com/alibaba/fastjson
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。常用api如下:
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。
serializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String,Object>
1、JSON测试:
public class Test { private static serializeConfig mapping = new serializeConfig(); static { mapping.put(Date.class,new SimpleDateFormatserializer("yyyy-MM-dd HH:mm:ss")); } public static void main(String[] args) { Foo f1 = new Foo(); Date date = new Date(); String text = JSON.toJSONString(date,mapping); System.out.println(text); System.out.println(JSON.toJSONString(f1,truE)); String x2 =JSON.toJSONString(f1,mapping); System.out.println(x2); } public static void json2List(){ //List -> JSON array List<Bar> barList = new ArrayList<Bar>(); barList.add(new Bar()); barList.add(new Bar()); barList.add(new Bar()); String json= JSON.toJSONString(barList,truE); System.out.println(json); //JSON array -> List List<Bar> barList1 = JSON.parseArray(json,Bar.class); for (Bar bar : barList1) { System.out.println(bar.toString()); } } public static void json2Map(){ //Map -> JSON Map<String,Bar> map = new HashMap<String,Bar>(); map.put("a",new Bar()); map.put("b",new Bar()); map.put("c",new Bar()); String json = JSON.toJSONString(map,truE); System.out.println(json); //JSON -> Map Map<String,Bar> map1 = (Map<String,Bar>)JSON.parse(json); for (String key : map1.keySet()) { System.out.println(key+":"+map1.get(key)); } } public static void array2JSON(){ String[] arr_String = {"a","b","c"}; String json_arr_String = JSON.toJSONString(arr_String,truE); System.out.println(json_arr_String); JSONArray jsonArray = JSON.parseArray(json_arr_String); for (Object o : jsonArray) { System.out.println(o); } System.out.println(jsonArray); } public static void array2JSON2(){ Bar[] arr_Bar = {new Bar(),new Bar(),new Bar()}; String json_arr_Bar = JSON.toJSONString(arr_Bar,truE); System.out.println(json_arr_Bar); JSONArray jsonArray = JSON.parseArray(json_arr_Bar); for (Object o : jsonArray) { System.out.println(o); } System.out.println(jsonArray); } public static void map2JSON(){ Map map = new HashMap(); map.put("a","aaa"); map.put("b","bbb"); map.put("c","ccc"); String json=JSON.toJSONString(map); System.out.println(json); Map map1 = JSON.parSEObject(json); for (Object o : map.entrySet()) { Map.Entry<String,String> entry = (Map.Entry<String,String>)o; System.out.println(entry.getKey()+"--->"+entry.getValue()); } } }
2、也可以使用JSONArray、JSONObject。例如:
String str = "..."; List<Bar> list = JSONArray.parseArray(itemJson,Bar.class); JSONArray arr = JSONArray.parseArray(str); String str1 = "..."; Bar bar = JSONObject.parSEObject(str1,Bar.class); JSONObject obj = JSONObject.parSEObject(str1);
在做JSON反序列化的时候,我们可能经常传递一个class对象来获取对象的示例。但有的时候,可能并不存在这样的class对象。这时可以不定义任何类,直接通过JSONArray和JSONObject来访问。
1)JSONObject用来存放非内置对象,组织形式是一个键值对。事实上,JSONObject是@L_77_23@map。解析成功后,如果是Java内置对象,可以直接调用相应方法获取值,比如ublic Integer getInteger(String key)。如果不是内置对象,可以调用public JSONObject getJSONObject(String key)来读取对象。如果还是数组,可以调用public JSONArray getJSONArray(String key)。
2)JSONArray用来存放JSON数组。解析成功后,如果是Java内置对象,可以直接调用相应方法获取值,比如public Integer getInteger(int indeX)。如果不是内置对象,可以调用public JSONObject getJSONObject(int indeX)来读取对象。如果还是数组,可以调用public JSONArray getJSONArray(int indeX)。事实上,JSONArray就是一个List。
补充:JSONObject有containsKey()、getString()等方法
参考:http://www.tuicool.com/articles/zUbQfa以上是大佬教程为你收集整理的FastJSON 常用操作全部内容,希望文章能够帮你解决FastJSON 常用操作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。