阿里的FastJSON使用

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


     com.alibaba
     fastjson
     1.1.23
 

序列化:将java对象转换为json字符串

1.将Map转成JSON

     Map map = new HashMap();
     map.put("key1","value1");
     map.put("key2","value2");
     String mapJson= JSON.toJSONString(map);
     System.out.println(mapJson);
    //输出
    {"key1":"value1","key2":"value2"}

2.将List

   List> list = new ArrayList>();
        Map map1 = new HashMap();
        map1.put("key1","value1");
        map1.put("key2","value2");

        Map map2 = new HashMap();
        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 list1 = JSON.parseArray(listJson, Map.class);            
 for(Map map : list1){
     System.out.println(map.get("key1"));
     System.out.println(map.get("key2"));         
 }
 //输出
 value1 
 value2
 value3
 value4

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

    Map map1 = JSON.parseObject(mapJson, new TypeReference>(){});
     System.out.println(map1.get("key1"));
     System.out.println(map1.get("key2"));
     //输出
     value1
     value2

你可能感兴趣的:(JSON)