fastjson测试

  1. 创建maven工程并引入jar包

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.8</version>
        </dependency>
  2. 创建一个包com.demo.fastjson
  3. 在这个包下创建一个实体类Entity.java

    package com.demo.fastjson;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class Entity {
        private String vString = "vStringhehhehe"; 
    
        private char vchar = ‘x‘;
        private byte vbyte = 64;
        private short vshort = 128;
        private int vint = 65535;
        private long vlong = 9999999L;
        private float vfloat = 12.1f;
        private double vdouble = 22.203d;
        private boolean vboolean = false; 
    
    //    private Date vdate = new Date();
        private Date dddd = new Date();
        private Date vDate = new Date();
        private Date v_Date = new Date();
        private Object vnull = null; 
    
        private String[] avString = {"aaa", "bbb", "ccc"};
        private int[] avint = {1, 2, 3, 4};
        private boolean[] avboolean = {true, false, true, true}; 
    
        private List<String> listString = new ArrayList<String>();
        private Map<String, String> map = new HashMap<String, String>(); 
    
        private Person person = new Person();
        private Person[] avPerson = {new Person(), new Person()};
        private List<Person> listPerson = new ArrayList<Person>(); 
    
        {
                listString.add("listString1");
                listString.add("listString2");
                listString.add("listString3"); 
    
                map.put("x", "s11111x");
                map.put("y", "s22222y");
                map.put("z", "s33333z"); 
    
                listPerson.add(new Person());
                listPerson.add(new Person()); 
    
                listPerson.add(new Person());
        } 
    
        public String getvString() {
                return vString;
        } 
    
        public void setvString(String vString) {
                this.vString = vString;
        } 
    
        public char getVchar() {
                return vchar;
        } 
    
        public void setVchar(char vchar) {
                this.vchar = vchar;
        } 
    
        public byte getVbyte() {
                return vbyte;
        } 
    
        public void setVbyte(byte vbyte) {
                this.vbyte = vbyte;
        } 
    
        public short getVshort() {
                return vshort;
        } 
    
        public void setVshort(short vshort) {
                this.vshort = vshort;
        } 
    
        public int getVint() {
                return vint;
        } 
    
        public void setVint(int vint) {
                this.vint = vint;
        } 
    
        public long getVlong() {
                return vlong;
        } 
    
        public void setVlong(long vlong) {
                this.vlong = vlong;
        } 
    
        public float getVfloat() {
                return vfloat;
        } 
    
        public void setVfloat(float vfloat) {
                this.vfloat = vfloat;
        } 
    
        public double getVdouble() {
                return vdouble;
        } 
    
        public void setVdouble(double vdouble) {
                this.vdouble = vdouble;
        } 
    
        public boolean isVboolean() {
                return vboolean;
        } 
    
        public void setVboolean(boolean vboolean) {
                this.vboolean = vboolean;
        } 
    
        public Date getDddd() {
                return dddd;
        } 
    
        public void setDddd(Date dddd) {
                this.dddd = dddd;
        } 
    
        public Date getV_Date() {
                return v_Date;
        } 
    
        public void setV_Date(Date v_Date) {
                this.v_Date = v_Date;
        } 
    
        public Date getvDate() {
                return vDate;
        } 
    
        public void setvDate(Date vDate) {
                this.vDate = vDate;
        } 
    
        public Object getVnull() {
                return vnull;
        } 
    
        public void setVnull(Object vnull) {
                this.vnull = vnull;
        } 
    
        public String[] getAvString() {
                return avString;
        } 
    
        public void setAvString(String[] avString) {
                this.avString = avString;
        } 
    
        public int[] getAvint() {
                return avint;
        } 
    
        public void setAvint(int[] avint) {
                this.avint = avint;
        } 
    
        public boolean[] getAvboolean() {
                return avboolean;
        } 
    
        public void setAvboolean(boolean[] avboolean) {
                this.avboolean = avboolean;
        } 
    
        public List<String> getListString() {
                return listString;
        } 
    
        public void setListString(List<String> listString) {
                this.listString = listString;
        } 
    
        public Map<String, String> getMap() {
                return map;
        } 
    
        public void setMap(Map<String, String> map) {
                this.map = map;
        } 
    
        public Person getPerson() {
                return person;
        } 
    
        public void setPerson(Person person) {
                this.person = person;
        } 
    
        public Person[] getAvPerson() {
                return avPerson;
        } 
    
        public void setAvPerson(Person[] avPerson) {
                this.avPerson = avPerson;
        } 
    
        public List<Person> getListPerson() {
                return listPerson;
        } 
    
        public void setListPerson(List<Person> listPerson) {
                this.listPerson = listPerson;
        }
    }

    Entity.java代码

  4. 还是这个包下,创建一个Person.java

    package com.demo.fastjson;
    
    import java.util.Date;
    import java.util.Random;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.serializer.SerializeConfig;
    import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
    
    public class Person {
        public static SerializeConfig mapping = new SerializeConfig();
        private String personName;
        private int personAge;
        private Date personDate = new Date();
        static {
                mapping.put(Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd"));
        }
        {
                Random r = new Random();
                personName = "sss_"+String.valueOf(r.nextFloat());
                personAge = r.nextInt();
        } 
    
        public static void main(String[] args) {
                Object obj = JSON.toJSON(new Person());
                String x1 = JSON.toJSONString(new Person(), true);
                System.out.println(x1);
                String x2 = JSON.toJSONString(new Person(), mapping);
                System.out.println(x2);
        } 
    
        public String getPersonName() {
                return personName;
        } 
    
        public void setPersonName(String PersonName) {
                this.personName = PersonName;
        } 
    
        public int getPersonAge() { 
    
                return personAge;
        } 
    
        public void setPersonAge(int personAge) {
                this.personAge = personAge;
        } 
    
        public Date getzPersonDate() {
                return personDate;
        } 
    
        public void setPersonDate(Date personDate) {
                this.personDate = personDate;
        } 
    
        @Override
        public String toString() {
                return "Person{" +
                                "personName=‘" + personName + ‘\‘‘ +
                                ", personAge=" + personAge +
                                ", personDate=" + personDate +
                                ‘}‘;
        }
    }

    Person.java代码

  5. 还在这个包下,创建一个TestFastjson.java

    package com.demo.fastjson;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.serializer.SerializeConfig;
    import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
    
    public class TestFastjson {
        private static SerializeConfig mapping = new SerializeConfig();
        static {
            mapping.put(Date.class, new SimpleDateFormatSerializer("yyyy-MM-dd HH:mm:ss"));
        }
    
        public static void main(String[] args) {
            Entity entity = new Entity();
            Date date = new Date();
            String text = JSON.toJSONString(date, mapping);
            System.out.println(text);
            System.out.println(JSON.toJSONString(entity, true));
            String x2 = JSON.toJSONString(entity, mapping);
            System.out.println(x2);
        }
    
        public static void json2List() {
            // List -> JSON array
            List<Person> PersonList = new ArrayList<Person>();
            PersonList.add(new Person());
            PersonList.add(new Person());
            PersonList.add(new Person());
            String json = JSON.toJSONString(PersonList, true);
            System.out.println(json);
            // JSON array -> List
            List<Person> personList1 = JSON.parseArray(json, Person.class);
            for (Person person : personList1) {
                System.out.println(person.toString());
            }
        }
    
        public static void json2Map() {
            // Map -> JSON
            Map<String, Person> map = new HashMap<String, Person>();
            map.put("a", new Person());
            map.put("b", new Person());
            map.put("c", new Person());
            String json = JSON.toJSONString(map, true);
            System.out.println(json);
            // JSON -> Map
            Map<String, Person> map1 = (Map<String, Person>) JSON.parse(json);
            for (String key : map1.keySet()) {
                System.out.println(key + ":" + map1.get(key));
            }
        }
    
        public static void array2JSON() {
            String[] arr_String = { "a", "b", "c" };
            String json_arr_String = JSON.toJSONString(arr_String, true);
            System.out.println(json_arr_String);
            JSONArray jsonArray = JSON.parseArray(json_arr_String);
            for (Object o : jsonArray) {
                System.out.println(o);
            }
            System.out.println(jsonArray);
        }
    
        public static void array2JSON2() {
            Person[] arr_Person = { new Person(), new Person(), new Person() };
            String json_arr_Person = JSON.toJSONString(arr_Person, true);
            System.out.println(json_arr_Person);
            JSONArray jsonArray = JSON.parseArray(json_arr_Person);
            for (Object o : jsonArray) {
                System.out.println(o);
            }
            System.out.println(jsonArray);
        }
    
        public static void map2JSON() {
            Map map = new HashMap();
            map.put("a", "aaa");
            map.put("b", "bbb");
            map.put("c", "ccc");
            String json = JSON.toJSONString(map);
            System.out.println(json);
            Map map1 = JSON.parseObject(json);
            for (Object o : map.entrySet()) {
                Map.Entry<String, String> entry = (Map.Entry<String, String>) o;
                System.out.println(entry.getKey() + "--->" + entry.getValue());
            }
        }
    }

    TestFastjson.java代码

  6. Person.java运行结果并分析

    //第一次输出一个Person类对象的json字符串
    //第二个实参是一个布尔值true,形参变量名为prettyFormat,输出格式可读性强
    {
        "personAge":-1558299568,
        "personName":"sss_0.2234999",
        "zPersonDate":1492426894572
    }
    //第二次输出的还是一个Person类对象的json字符串
    //第二个实参是一个自定义的格式,日期会按自定义格式输出
    {"personAge":-1538580665,"personName":"sss_0.96627986","zPersonDate":"2017-04-17"}

  7. TestFastjson运行结果并分析

    //第一次输出一个自定义格式的日期
    "2017-04-17 19:17:55"
    //第二次输出一个Entity类对象的json 字符串,可读性强
    //这是一个java 对象,对应json 字符串的对象
    {
    //这是这个java 对象里的第一个属性Person数组
        "avPerson":[{
            "personAge":408324610,
            "personName":"sss_0.31633854",
            "zPersonDate":1492427875498
        },{
            "personAge":-32783373,
            "personName":"sss_0.31466597",
            "zPersonDate":1492427875498
        }],
     //这是这个java 对象里的第二个属性字符串数组
        "avString":["aaa","bbb","ccc"],
     //这是这个java 对象里的第三个属性布尔值数组
        "avboolean":[true,false,true,true],
     //这是这个java 对象里的第四个属性int数组
        "avint":[1,2,3,4],
     //这是这个java 对象里的第五个日期属性long数值
        "dddd":1492427875496,
     //这是这个java 对象里的第六个属性Person集合
        "listPerson":[
            {
                "personAge":-1130093579,
                "personName":"sss_0.80541015",
                "zPersonDate":1492427875498
            },
            {
                "personAge":-1257501011,
                "personName":"sss_0.9102172",
                "zPersonDate":1492427875498
            },
            {
                "personAge":1886596126,
                "personName":"sss_0.9991592",
                "zPersonDate":1492427875498
            }
        ],
      //这是这个java 对象里的第七个属性Sting集合
        "listString":[
            "listString1",
            "listString2",
            "listString3"
        ],
     //这是这个java 对象里的第八个属性map对象
        "map":{
            "x":"s11111x",
            "y":"s22222y",
            "z":"s33333z"
        },
     //这是这个java 对象里的第九个属性Person对象
        "person":{
            "personAge":50986186,
            "personName":"sss_0.77795047",
            "zPersonDate":1492427875496
        },
      //这是这个java 对象里的第十个属性日期对象的long值
        "vDate":1492427875496,
     //这是这个java 对象里的第十一个属性字符串对象
        "vString":"vStringhehhehe",
     //这是这个java 对象里的第十二个属性日期类的long值
        "v_Date":1492427875496,
     //这是这个java 对象里的第十三个属性布尔值
        "vboolean":false,
     //这是这个java 对象里的第十四个属性byte 数值
        "vbyte":64,
     //这是这个java 对象里的第十五个属性char 字符
        "vchar":"x",
     //这是这个java 对象里的第十六个属性double 数值
        "vdouble":22.203,
     //这是这个java 对象里的第十七个属性float 数值
        "vfloat":12.1,
     //这是这个java 对象里的第十八个属性int 数值
        "vint":65535,
     //这是这个java 对象里的第十九个属性long 数值
        "vlong":9999999,
     //这是这个java 对象里的第二十个属性short 数值
        "vshort":128
    }
    
    //第三次还是输出一个Entity类对象的json 字符串,可读性差
    {"avPerson":[{"personAge":408324610,"personName":"sss_0.31633854","zPersonDate":"2017-04-17 19:17:55"},{"personAge":-32783373,"personName":"sss_0.31466597","zPersonDate":"2017-04-17 19:17:55"}],"avString":["aaa","bbb","ccc"],"avboolean":[true,false,true,true],"avint":[1,2,3,4],"dddd":"2017-04-17 19:17:55","listPerson":[{"personAge":-1130093579,"personName":"sss_0.80541015","zPersonDate":"2017-04-17 19:17:55"},{"personAge":-1257501011,"personName":"sss_0.9102172","zPersonDate":"2017-04-17 19:17:55"},{"personAge":1886596126,"personName":"sss_0.9991592","zPersonDate":"2017-04-17 19:17:55"}],"listString":["listString1","listString2","listString3"],"map":{"x":"s11111x","y":"s22222y","z":"s33333z"},"person":{"personAge":50986186,"personName":"sss_0.77795047","zPersonDate":"2017-04-17 19:17:55"},"vDate":"2017-04-17 19:17:55","vString":"vStringhehhehe","v_Date":"2017-04-17 19:17:55","vboolean":false,"vbyte":64,"vchar":"x","vdouble":22.203,"vfloat":12.1,"vint":65535,"vlong":9999999,"vshort":128}
        

  

时间: 2024-11-05 00:52:26

fastjson测试的相关文章

fastjson使用

简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson.并且还超越了google的二进制协议protocol buf. 支持标准 Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一. 功能强大 支持各种JDK类型.包括基本类型.JavaBean.Collection.Map.Enum.泛型等.支持循环引用 无依赖

Fastjson 的简单使用&lt;转&gt;

简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson.并且还超越了google的二进制协议protocol buf. 支持标准 Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一. 功能强大 支持各种JDK类型.包括基本类型.JavaBean.Collection.Map.Enum.泛型等. 支持循环引用 无依

fastjson 的使用总结

前言 最近在开发过程中使用了大量的json作为前后端数据交换的方式,由于之前没有对json做过系统的学习,所有在使用过程中查阅了大量的文档与资料,这里主要记录了我在开发后对json以及fastjson使用的总结 JSON 介绍 JSON(javaScript Object Notation)是一种轻量级的数据交换格式.主要采用键值对({"name": "json"})的方式来保存和表示数据.JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质上是

java各种序列化性能测试

最近在做redis封装的过程中,需要使用序列化进行数据的传输,索性就把各种序列化方案都拿出来做了一个对比. 序列化有两种用途: 1)把对象的字节序列永久的保存在硬盘中 2)在网络上传输对象的字节序列 场景:通过模拟一个普通的POJO类进行序列化和反序列化的过程 每种情况进行1000万次的循环 不同版本JDK的模拟 序列化方案: 1.fst 2.jdk 3.kryo 4.hession 5.protostuff 6.jackson 7.fastjson 测试结果: 总结: 1.java版本升级到1

更强的 JsonPath 兼容性及性能测试

更强的 JsonPath 兼容性及性能测试 最近给自己的json框架snack3添加了json path支持.搞好之后,找了两个市面上流行框架比较性测试,以助自己改进框架的性能和兼容性. 测了一圈之后,发现snack3兼容性良好,性能更是最好的.晚上要喝点小酒庆祝一下!!! 免责声明:我也是个java新手,可能测试得方式不对而造成不科学的结果,可以留言指出来.以下测试数值只对我的电脑有效(配置:Macbook pro 13 2018款 i7+16G+512G). Snack3 借签了 Javas

FastJson与Gson小测试

最近用到Json来传输数据,找到两个比较简单的工具 Gson 和 FastJson随便测试一下两个工具的效率~ 1 package com.json.fast; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import com.alibaba.fastjson.JSON; 7 import com.demo.module.Student; 8 import com.google.gson.Gson; 9 import

fastJson解析复杂的json字符串,经测试已经成功解析

要解析的json数据格式为: HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { ResponseStatus: { }, Data: { TourCopyWriterInfo: { DefaultCopyWriter: String, SearchValue: String }, ThemeList: [ { Key: String, Value: String, PoiId: String, IsJump: Fals

FastJSON应用前测试--转载

FastJSON 应用前测试 FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能. 实际上其他的json处理工具都和它差不多,api也有几分相似. 一.JSON规范 JSON是一个标准规范,用于数据交互,规范的中文文档如下: http://www.json.org/json-zh.html 参看规范,来对比JSON类库处理结果. 二.fastjson的一些简要说明 1.了解fastjso

利用fastjson解析json并通过js&amp;ajax实现页面的无跳转刷新

1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一个web项目,这是我的项目:我这里直接用servlet写的 注意导包,我这里到了很多无用的包,其实主要的包是下面几个: 这个三个包是必须的,其他都是开发基本web的常用包 3.创建一个domain: package com.keson.domain; import com.thoughtworks.