fastjson的常用操作

明-学以致用      2022-02-11     654

关键词:

FastJson的常用操作

2017-06-05

常用操作包括以下内容:

  1. 对象与(JsonObject或JsonArray)与String的互换
  2. String转换为(JsonObject或JsonArray)如何保持顺序
  3. Eval的使用
  4. 值为null的(JsonObject或JsonArray)转换为String时如何保存

代码:

技术分享
package Demo.Sample1;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONPath;
import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class Sample {

    public static void main(String[] args) {
        
        Group group = GenerateGroup();
        String ss="{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}";        
        Group groupWithNull=GenerateGroupWithNull();
        
        BasicObjectToStringCompare();
        JsonObjectToStringCompare(ss);
        NJsonObjectToStringCompare(group);
        JsonStringSequence(group, ss);        
        JsonEval(ss,"$.users");
        DealWithNullToStringString(groupWithNull);        
    }
    
    public static void BasicObjectToStringCompare()
    {
        System.out.println("---------- 基元类型 toString() toJSONString() 比较: ----------");
        System.out.println("ZifuChuan");
        System.out.println(JSON.toJSONString("ZifuChuan"));
        System.out.println(true);
        System.out.println(JSON.toJSONString(true));
        System.out.println(1.1);
        System.out.println(JSON.toJSONString(1.1));
    }
    
    public static String NJsonObjectToStringCompare(Group group) {
        String jsonString = JSON.toJSONString(group);
        System.out.println("---------- 非JsonObject toString() toJSONString() 比较: ----------");
        System.out.println(group.toString());
        System.out.println(JSON.toJSONString(group));
        return jsonString;
    }
    
    public static String JsonObjectToStringCompare(String ss) {
        Object o=JSON.parse(ss,Feature.OrderedField);
        System.out.println("---------- JsonObject toString() toJSONString() 比较: ----------");
        System.out.println(o.toString());
        System.out.println(JSON.toJSONString(o));
        return ss;
    }

    

    public static void JsonStringSequence(Group group, String jsonString) {
        System.out.println("---------- 是否有序: ----------");
        Object o=JSON.parse(jsonString);
        System.out.println(o.toString());;
        
        Object o1=JSON.parse(jsonString,Feature.OrderedField);
        System.out.println(o1.toString());
        
        Object o2 = JSON.toJSON(group);
        System.out.println(o2.toString());
    }
    
    public static void JsonEval(String ss,String jsonPath) {
        System.out.println("---------- Json Eval: ----------");        
        Object o3=JSONPath.eval(JSON.parse(ss,Feature.OrderedField),jsonPath);
        System.out.println(o3.toString());
    }

    public static void DealWithNullToStringString(Group groupWithNull) {
        System.out.println("---------- JsonObject with null emlement: ----------");
        System.out.println(JSON.toJSONString(groupWithNull));
        System.out.println(JSON.toJSONString(groupWithNull,SerializerFeature.WriteMapNullValue));
    }
    
    private static Group GenerateGroup() {
        Group group = new Group();
        group.setId(1.1);
        group.setName("admin");

        User guestUser = new User();
        guestUser.setId(2.2);
        guestUser.setName("guest");

        User rootUser = new User();
        rootUser.setId(3.3);
        rootUser.setName("root");

        group.addUser(guestUser);
        group.addUser(rootUser);
        return group;
    }
    
    private static Group GenerateGroupWithNull() {
        Group group = new Group();
        group.setId(1.1);
        group.setName("");

        User guestUser1 = new User();
        guestUser1.setId(null);
        guestUser1.setName("guest");

        User guestUser2 = new User();
        guestUser2.setId(3.3);
        
        User guestUser3 = new User();        

        group.addUser(guestUser1);
        group.addUser(guestUser2);
        group.addUser(guestUser3);
        return group;
    }
}
View Code

结果:

技术分享
---------- 基元类型 toString() toJSONString() 比较: ----------
ZifuChuan
"ZifuChuan"
true
true
1.1
1.1
---------- JsonObject toString() toJSONString() 比较: ----------
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
---------- 非JsonObject toString() toJSONString() 比较: ----------
Demo.Sample1.Group@23ab930d
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
---------- 是否有序: ----------
{"name":"admin","id":1.1,"users":[{"name":"guest","id":2.2},{"name":"root","id":3.3}]}
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
{"name":"admin","id":1.1,"users":[{"name":"guest","id":2.2},{"name":"root","id":3.3}]}
---------- Json Eval: ----------
[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]
---------- JsonObject with null emlement: ----------
{"id":1.1,"name":"","users":[{"name":"guest"},{"id":3.3},{}]}
{"id":1.1,"name":"","users":[{"id":null,"name":"guest"},{"id":3.3,"name":null},{"id":null,"name":null}]}
View Code

参考:

[1] Introducing JSON

[2] FastJson 教程

 

fastjson常用方法

FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArraypublicstaticfinalJSONObjectparseObject(Stringtext);//把 查看详情

fastjson

FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。public static final Objectparse(Stringtext); //把JSON文本parse为JSONObject或者JSONArray public static  查看详情

fastjson的常用方法

/***解析对象形式的json字符串*/publicstaticvoidtest1(){StringjsonStr="{"JACKIE_ZHANG":"张学友","ANDY_LAU":"刘德华","LIMING":"黎明","Aaron_Kwok":"郭富城"}";JSONObjectjsonObject=JSONObject.parseObject(jsonStr 查看详情

fastjson的常用使用方法

packageDemo;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Vector;importcom.alibaba.fastjson.JSON;importcom.alib 查看详情

fastjson的常用用法以及自定义排序

fastJson的四种常用方法JSON转POJOpublicstatic<T>TgetObject(Stringpojo,Class<T>tclass){returnJSONObject.parseObject(pojo,tclass);}POJO转JSONpublicstatic<T>StringgetJson(TtResponse){returnJSONOb 查看详情

fastjson中对象转换中看到的一些现象(代码片段)

...一看代码如下:JSON.parseObject(value,List.class)这里使用了fastjson,但是这里一看就看的出来,使用的不是很流畅。先讲讲fastjson什么是fastjsonfastjson是阿里开源的一个json操作库。从名字就可以看出来。它支持json和java对象类... 查看详情

fastjson中对象转换中看到的一些现象(代码片段)

...一看代码如下:JSON.parseObject(value,List.class)这里使用了fastjson,但是这里一看就看的出来,使用的不是很流畅。先讲讲fastjson什么是fastjsonfastjson是阿里开源的一个json操作库。从名字就可以看出来。它支持json和java对象类... 查看详情

常用fastjson的serializerfeature特性及日期转换格式

SerializerFeature.PrettyFormat:格式化输出SerializerFeature.WriteMapNullValue:是否输出值为null的字段,默认为falseSerializerFeature.DisableCircularReferenceDetect:消除循环引用SerializerFeature.WriteNullStringAsEmpty:将为null的字段值 查看详情

fastjson中jsonobject用法及常用方法总结(代码片段)

最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下:JSONobject是FastJson提供的对象,在api中是用一个私有的常量map进行封装的,实际就是一个map,只不过Fas... 查看详情

fastjson使用详解(代码片段)

目录一、fastjson介绍二、fastjson使用三、fastjson常用API四、fastjson使用演示测试类准备1.java类转换为json字符串2.json字符串转为java类五、fastjson实际开发应用1.对复杂的json串转为java类2.对json串的操作六、fastjson漏洞问题一、fastjson介... 查看详情

fastjson中jsonobject用法及常用方法总结(代码片段)

最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下:JSONobject是FastJson提供的对象,在api中是用一个私有的常量map进行封装的,实际就是一个map,只不过Fas... 查看详情

json小结和fastjson包的实际json操作

工作中,需要处理与另一方系统数据交换的问题,采用的是调用远程接口的方法,数据格式选择的是json,今天就来聊一聊json,主要分析json数据和javaBean之间的转换问题。一、json是什么json,全称是JavaScript ObjectNotation,中文... 查看详情

json_常用类json与对象的互相转换typereference泛型遇到的坑(代码片段)

文章目录①.fastJson-常用类②.定义-JSON格式③.简单对象与JSON转换④.数组类型与JSONArray⑤.复杂json格式转换⑥.JSON与javaBean转换⑦.TypeReference泛型⑧.JSON.toJSONString的坑①.fastJson-常用类①.fastJson对于json格式字符串的解析主要用到了一... 查看详情

json_常用类json与对象的互相转换typereference泛型遇到的坑(代码片段)

文章目录①.fastJson-常用类②.定义-JSON格式③.简单对象与JSON转换④.数组类型与JSONArray⑤.复杂json格式转换⑥.JSON与javaBean转换⑦.TypeReference泛型⑧.JSON.toJSONString的坑①.fastJson-常用类①.fastJson对于json格式字符串的解析主要用到了一... 查看详情

android原生json和fastjson的简单使用

 android原生操作json数据主要是两个类JSONObject操作对象  JONSArray操作json数组 对象转json1  //创建学生对象2Studentstudent=newStudent();3student.setAge(23);4student.setClazz("六年级");5student.setName("王二麻子");6//创建 查看详情

fastjson序列化时过滤字段(属性)的方法总结(代码片段)

FastJson序列化时(即转成JSON字符串时),可以过滤掉部分字段,或者只保留部分字段,方法有很多,下面举一些常用的方法。方法一、FastJson的注解@JSONField(serialize=false)privateStringname;  最便捷,... 查看详情

fastjson怎么解析像“

  1.fastjson生成和解析json数据  (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>)  2.通过一个android程序测试fastjson的用法。  fastjson简介:  Fastjson是一个Java语言编写的高性能功能完... 查看详情

fastjson怎么解析像“

参考技术A  1.fastjson生成和解析json数据  (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>)  2.通过一个android程序测试fastjson的用法。  fastjson简介:  Fastjson是一个Java语言编写的高性... 查看详情