json处理 之 fastJson一些使用总结

springboot中需要导入依赖 :

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

fastjson
FastJson是用于java后台处理json格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:

(1)速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。
(2)功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
(3)无依赖,能够直接运行在Java SE 5.0以上版本

FastJson对于json格式字符串的解析主要用到了一下三个类:

(1)JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
(2)JSONObject:fastJson提供的json对象。
(3)JSONArray:fastJson提供json数组对象。

一些个人的使用

//自己构造JSON数据
 JSONObject jsonObject = new JSONObject();
 jsonObject .put("XX",xxx);
 jsonObject .get("XX");
//将实体类转换为JSON数据
 Student student = new Student(1,"李三",17);
 String s = JSON.toJSONString(stdent);
 //json 数据转化为json对象
  JSONObject jsonObject = JSON.parseObject(s)
   jsonObject .get("id");
   jsonObject .get("username");
   jsonObject .get("age")
 //json 数据转化为实体类
  Student student = JSON.parseObject(s, Student .class);
 

注意: JSONObject 底层默认使用的是hashmap 所以输出是按key的ASCII码排序来的和插入顺序无关 如果对顺序由需求的话可以使用linkedHashMap


即定义JSONObject可以这样:JSONObject jsonObj = new JSONObject(new LinkedHashMap());

或者 JSONObject jsonObj = new JSONObject(true);

查看源码就能够明白

    private static final long         serialVersionUID         = 1L;
    private static final int          DEFAULT_INITIAL_CAPACITY = 16;

    private final Map<String, Object> map;

    public JSONObject(){
        this(DEFAULT_INITIAL_CAPACITY, false);
    }

    public JSONObject(Map<String, Object> map){
        this.map = map;
    }

    public JSONObject(boolean ordered){
        this(DEFAULT_INITIAL_CAPACITY, ordered);
    }

    public JSONObject(int initialCapacity){
        this(initialCapacity, false);
    }

    public JSONObject(int initialCapacity, boolean ordered){
        if (ordered) {
            map = new LinkedHashMap<String, Object>(initialCapacity);
        } else {
            map = new HashMap<String, Object>(initialCapacity);
        }
    }


发布了78 篇原创文章 · 获赞 5 · 访问量 7368

猜你喜欢

转载自blog.csdn.net/weixin_41930050/article/details/103419751
今日推荐