版权声明:本文为博主原创文章,未经博主允许不得转载。 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));
}
}