FastJSON 常用操作
来源:互联网 发布:android开源app源码 编辑:程序博客网 时间:2024/05/21 15:44
下载地址: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);
3、其他:
在做JSON反序列化的时候,我们可能经常传递一个class对象来获取对象的示例。但有的时候,可能并不存在这样的class对象。这时可以不定义任何类,直接通过JSONArray和JSONObject来访问。
1)JSONObject用来存放非内置对象,组织形式是一个键值对。事实上,JSONObject是一个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()等方法
- FastJSON 常用操作
- fastjson常用操作
- 使用FastJson对数据的常用操作
- 阿里巴巴FastJson对数据的常用操作
- fastjson常用方法
- fastjson常用方法
- fastjson其他常用方法
- fastjson 常用的方法
- fastjson常用示例
- fastjson常用方法
- fastjson的常用使用方法
- fastjson常用方法总结
- FastJson--常用方法总结
- fastJSON常用方法
- FastJson常用指南
- fastjson常用使用方法
- FASTJson常用的API
- FastJson 常用序列化操作调用json上的静态方法
- J
- Swift 学习记录(1)
- ora-12541:TNS:无监听程序
- JAVA利用HttpClient进行POST请求(HTTPS)
- C++ typedef的用法
- FastJSON 常用操作
- 随笔面试题
- 第三周 项目4(7)辩数字
- C++复习要点总结之八——继承一
- 数据结构 用单链表表示集合的并交差运算
- 第五周上机实践项目1(5):三角形类雏形
- 关于Android中对图片进行模糊处理的方法
- 数据类型
- Git 补充