fastjson对JAVA数据的进行JSON处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36802726/article/details/82113467

maven配置:

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

序列化

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

反序列化

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

例1:将Map转成JSON

1 Map<String, Object> map = new HashMap<String, Object>();
2 map.put("key1", "One");
3 map.put("key2", "Two");
4         
5 String mapJson = JSON.toJSONString(map);
输出结果:

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

将例1反序列化。

1 Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});
2 System.out.println(map1.get("key1"));
3 System.out.println(map1.get("key2"));
输出结果:

1 One
2 Two

例2:将List<Map>转成JSON

 1 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
 2         
 3 Map<String, Object> map1 = new HashMap<String, Object>();
 4 map1.put("key1", "One");
 5 map1.put("key2", "Two");
 6         
 7 Map<String, Object> map2 = new HashMap<String, Object>();
 8 map2.put("key1", "Three");
 9 map2.put("key2", "Four");
10         
11 list.add(map1);
12 list.add(map2);
13         
14 String listJson = JSON.toJSONString(list);
输出结果:

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

将例2反序列化。

1 List<Map> list1 = JSON.parseArray(listJson, Map.class);
2          
3 for(Map<String, Object> map : list1){
4     System.out.println(map.get("key1"));
5     System.out.println(map.get("key2"));         
6 }
输出结果:

1 One
2 Two
3 Three
4 Four

例3:自定义JavaBean User转成JSON。

1 User user = new User();
2 user.setUserName("李四");
3 user.setAge(24);
4         
5 String userJson = JSON.toJSONString(user);
输出结果:

{"age":24,"userName":"李四"}

将例3反序列化。

1 User user1 = JSON.parseObject(userJson, User.class);
2 System.out.println(user1.getUserName());
输出结果:

李四

例4:FastJSON将java.util.Date转成long。

1 String dateJson = JSON.toJSONString(new Date());
2         
3 System.out.println(dateJson);
输出结果:

1401370199040
FastJSON可以直接对日期类型格式化,在缺省的情况下,FastJSON会将Date转成long。

例5:使用SerializerFeature特性格式化日期。

1 String dateJson = JSON.toJSONString(new Date(), SerializerFeature.WriteDateUseDateFormat);
2         
3 System.out.println(dateJson);
输出结果:

"2014-05-29 21:36:24"

例6:指定输出日期格式。

1 String dateJson = JSON.toJSONStringWithDateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
2         
3 System.out.println(dateJson);
输出结果:

"2014-05-29 21:47:00.154"


JSONObject,JSONArray是JSON的两个子类。

JSONObject相当于Map<String, Object>,

JSONArray相当于List<Object>。

简单方法示例:

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

 1 Map<String, Object> map = new HashMap<String, Object>();
 2 map.put("key1", "One");
 3 map.put("key2", "Two");
 4                            
 5 JSONObject j = new JSONObject(map);
 6                    
 7 j.put("key3", "Three");
 8           
 9 System.out.println(j.get("key1"));
10 System.out.println(j.get("key2"));
11 System.out.println(j.get("key3"));

输出结果:

 

1 One
2 Two
3 Three

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

1 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
 2         
 3 Map<String, Object> map = new HashMap<String, Object>();
 4 map.put("key1", "One");
 5 map.put("key2", "Two");
 6         
 7 Map<String, Object> map2 = new HashMap<String, Object>();
 8 map2.put("key1", "Three");
 9 map2.put("key2", "Four");
10         
11 list.add(map);
12 list.add(map2);
13         
14 JSONArray j = JSONArray.parseArray(JSON.toJSONString(list));
15          
16 for(int i=0; i<j.size(); i++){
17     System.out.println(j.get(i));
18 }

输出结果:

1 {"key1":"One","key2":"Two"}
2 {"key1":"Three","key2":"Four"}
    public HashMap<String, Object> adList(@RequestBody String jsonParam) {
        
        JSONArray list1 = JSON.parseArray(jsonParam);
        for(int i = 0; i < list1.size(); i++){
            list1.getJSONObject(i);
            System.out.println(list1.getJSONObject(i));
        }
}

猜你喜欢

转载自blog.csdn.net/qq_36802726/article/details/82113467