FastJSON 简单使用

FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库。

如果使用Maven,在pom.xml文件加入以下依赖。

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.23</version>
 </dependency>

5.1 序列化

序列化就是指 把JavaBean对象转成JSON格式的字符串。

com.alibaba.fastjson.JSON提供了许多方法(多态)实现序列化。

5.1.1.基本的序列化
String objJson = JSON.toJSONString(Object object);

传入一个对象,将对象转成JSON字符串。

例1:将Map转成JSON

Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", "One");
map.put("key2", "Two");     
String mapJson = JSON.toJSONString(map);

输出结果:

{"key1":"One","key2":"Two"}

例2:将List<Map>转成JSON。

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("key1", "One");
map1.put("key2", "Two");
        
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("key1", "Three");
map2.put("key2", "Four");
        
list.add(map1);
list.add(map2);
        
String listJson = JSON.toJSONString(list);

输出结果:

[{"key1":"One","key2":"Two"},{"key3":"Three","key4":"Four"}]

可以输出格式化后的 JSON 字符串。

String objJson = JSON.toJSONString(Object object, boolean prettyFormat);

传入一个对象和一个布尔类型(是否格式化),将对象转成格式化后的JSON字符串。

例3:以例2代码为例。

String listJson = JSON.toJSONString(list, true);

输出结果为:

[
    {
        "key1":"One",
        "key2":"Two"
    },
    {
        "key3":"Three",
        "key4":"Four"
    }
]
5.1.2 FastJSON提供了许多特性支持
String objJson = JSON.toJSONString(Object object, SerializerFeature... features) 

传入一个对象和SerializerFeature类型的可变变量。SerializerFeature是一个枚举。

5.2 反序列化

反序列化就是把JSON格式的字符串转化为Java Bean对象。

 简单举几个例子。

指定Class信息反序列化。

User user1 = JSON.parseObject(userJson, User.class);

集合反序列化。

List<Map> list1 = JSON.parseArray(listJson, Map.class);

泛型的反序列化(使用TypeReference传入类型信息)。

Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});

5.3 其他(JSONObject,JSONArray)

JSONObject,JSONArray是JSON的两个子类。

JSONObject相当于Map<String, Object>

JSONArray相当于List<Object>

简单方法示例:

例16:将Map转成JSONObject,然后添加元素,输出。

  Map<String, Object> map = new HashMap<String, Object>();
  map.put("key1", "One");
  map.put("key2", "Two");
                             
  JSONObject j = new JSONObject(map);
                     
  j.put("key3", "Three");
            
  System.out.println(j.get("key1"));
 System.out.println(j.get("key2"));
 System.out.println(j.get("key3"));

输出结果:

One
Two
Three

例17:将List对象转成JSONArray,然后输出。

  List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
          
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("key1", "One");
  map.put("key2", "Two");
          
  Map<String, Object> map2 = new HashMap<String, Object>();
  map2.put("key1", "Three");
  map2.put("key2", "Four");
         
 list.add(map);
 list.add(map2);
         
 JSONArray j = JSONArray.parseArray(JSON.toJSONString(list));
          
 for(int i=0; i<j.size(); i++){
     System.out.println(j.get(i));
 }

输出结果:

{"key1":"One","key2":"Two"}
{"key1":"Three","key2":"Four"}

 

posted @ 2018-05-10 15:18  一个九  阅读(182)  评论(0编辑  收藏  举报