如果使用Maven,在pom.xml文件加入以下依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.23</version>
</dependency>
序列化:将java对象转换为json字符串
1.将Map转成JSON
Map<String,Object> map = new HashMap<String, Object>();
map.put("key1","value1");
map.put("key2","value2");
String mapJson= JSON.toJSONString(map);
System.out.println(mapJson);
//输出
{"key1":"value1","key2":"value2"}
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","value1");
map1.put("key2","value2");
Map<String,Object> map2 = new HashMap<String, Object>();
map2.put("key1","value3");
map2.put("key2","value4");
list.add(map1);
list.add(map2);
String jsonstr = JSON.toJSONString(list);
System.out.println(jsonstr);
//输出
[{"key1":"value1","key2":"value2"},{"key1":"value3","key2":"value4"}]
String objJson = JSON.toJSONString(Object object, boolean prettyFormat);
传入一个对象和一个布尔类型(是否格式化),将对象转成格式化后的JSON字符串。
String listJson= JSONArray.toJSONString(list,true);
System.out.println(listJson);
[
{
"key1":"value1",
"key2":"value2"
},
{
"key1":"value3",
"key2":"value4"
}
]
使用单引号
String listJson = JSON.toJSONString(list, SerializerFeature.UseSingleQuotes);
//输出
[{'key1':'value1','key2':'value2'},{'key1':'value3','key2':'value4'}]
3.自定义JavaBean User转成JSON。
User user = new User();
user.setId(1);
user.setUsername("乐乐");
user.setAge(12);
String userJson = JSON.toJSONString(user);
System.out.println(userJson);
//输出
{"age":12,"id":1,"username":"乐乐"}
4.日期格式化:
FastJSON可以直接对日期类型格式化,在缺省的情况下,FastJSON会将Date转成long。
(1)FastJSON将java.util.Date转成long。
String dateJson = JSON.toJSONString(new Date());
System.out.println(dateJson);
//输出
1547900848449
(2)使用SerializerFeature特性格式化日期。
String dateJson = JSON.toJSONString(new Date(), SerializerFeature.WriteDateUseDateFormat);
System.out.println(dateJson);
//输出
"2019-01-19 20:29:24"
(3)指定输出日期格式
String dateJson = JSON.toJSONStringWithDateFormat(new Date(), "yyyy-MM-dd HH:mm:ss");
System.out.println(dateJson);
//输出
"2019-01-19 20:32:34"
反序列化:将json字符串为java对象
User user1 = (User) JSON.parse(userJson);
System.out.println(user1.getAge());
//输出
22
指定Class信息反序列化
User user1 = JSON.parseObject(userJson, User.class);
2 System.out.println(user1.getUserName());
//输出
乐乐
集合反序列化
List<Map> list1 = JSON.parseArray(listJson, Map.class);
for(Map<String, Object> map : list1){
System.out.println(map.get("key1"));
System.out.println(map.get("key2"));
}
//输出
value1
value2
value3
value4
泛型的反序列化(使用TypeReference传入类型信息)
Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});
System.out.println(map1.get("key1"));
System.out.println(map1.get("key2"));
//输出
value1
value2