fastjson笔记

· json字符串与对象之间互转

import com.alibaba.fastjson.JSON;
import lombok.Data;

import java.util.LinkedList;
import java.util.List;

public class JsonPractice {
    @Data
    static class User {
        private String userId;
        private String userName;
    }

    public static void main(String[] args) {
        User user = new User();
        user.setUserId("1234567");
        user.setUserName("zhangsan");
        //对象转json字符串
        String jsonStr = JSON.toJSONString(user);
        System.out.println("jsonStr:" + jsonStr);
        //json字符串转对象
        User userParse = JSON.parseObject(jsonStr, User.class);
        System.out.println(userParse);

        User user2 = new User();
        user2.setUserId("98999999");
        user2.setUserName("lisi");
        List<User> userList = new LinkedList<User>();
        userList.add(user);
        userList.add(user2);
        //对象数组转json字符串
        String arrJsonStr = JSON.toJSONString(userList);
        System.out.println("arrJsonStr:" + arrJsonStr);

        //json字符串转对象数组
        List<User> userListParse = JSON.parseArray(arrJsonStr, User.class);
        System.out.println(userListParse);

    }
}

maven依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.70</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>

用到了lombok

· 关于日期的转换

public class Test {
    public static void main(String[] args) {
        Demo demo = JSON.parseObject("{'date':'2020-01-01 00:00:00 000'}", Demo.class);
    }
}

class Demo {
    public Date date;
}

Exception in thread "main" com.alibaba.fastjson.JSONException: For input string: "2020-01-01 00:00:00 000"
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:693)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:396)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:300)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:573)

解决:
ISO-8601 format
yyyy-MM-dd
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd HH:mm:ss.SSS
miliseconds
miliseconds string
.NET JSON format
new Date(198293238)

JSON.parseObject("{“date”:“2020-06-19 14:41:50.247”}", Demo.class);

传送门

· 其他转json的工具Gson、Jackson

· 关于fastjson的评价
四年前老架构师的话没听,现在出问题了,FastJson,到了说再见了

你可能感兴趣的:(fastjson笔记)