zoukankan      html  css  js  c++  java
  • 对于大数据量的Json解析

    近几天做了一个项目,需要解析大量的json数据,有一万多条,以前我用的都是Gson包去自动解析,但是速度真是不敢恭维,于是我又去查了其它的方法,发现fastjson的解析,发现速度直的是很快,在此我不得不佩服,这个包的作者,直是很厉害,能写出这样一个工具,我在网上看了,这个工具还有很多问题,但也可以理解,“人无完人嘛”,何况是工具呢?,所以自己研究了一下这个工具,在此分享给大家 ,希望有所帮助。
    对于这个包的功能不差于google提供的Gson包,它也支持很多,比如 时间格式 ,泛型,注解,集合解析等等。
    我下载的包1.1.6,我测试了一下,还算可以,大家 可以 尝试一下,下面我简要说一下两种使用方法,一个是注解,一个没有注解。
    **1、如何使用注解**
    首先我们要定义自己的一个类,举个例子,


    这是个简单的json`{"name":"ljw",age:18}`
    ```java
    //这是一个Person类
    public class Person{
    @JSONField(name = "Name")
    private String name;
    @JSONField(name = "Age")
    private int age;
    //对于这个无参构造,在此是一个要有的,如果不想用无参构 造,大家可以尝试这个注解@JSONCreater,它可以顶替这个无参 构造函数
    public Person(){}
    //这里的set方法我们一定要有否会报错
    public void setName(String name){
    this.name = name;
    }
    public void setAge(int age){
    this.age = age;
    }


    public String getName(){
    return this.name;
    }


    public int getAge(){
    return this.age;
    }
    }
    ```


    下面我们就可心用这个类去解析了,


    ```java
    Person person = JSON.parseObject("json",Person.class);
    ```


    这个我们就可以解析成一个类了,同样们们也也可以解析一个List集合,方法和google提供 的GSon包差不多一们,只不过是注解的方式 不同。如果我们想把一个javabean解析成一个json格式的字符串,也很简单,比如


    ```java
    String jsonString = JSON.toJSONString(javabean). 
    ```
    这样就ok 了。




    **2、不用注解解析的方式**
    这个方法只要把上面的方法的注解去除就可以了,默解析的字段名子是类的属性兔名字,比如“name” "age".
    其实我们大可不必用注解去解析,个人感觉不太方法,但这只是我个从的意见,因为在大多时候我们需要从服务器上获取数据,这个的json是不受我们自己控制的, 服务给的字段可能是首字母大写,如果我们不用注解就需要让我们类的属性名字首字母也大写,但这不符合java的设计原则, 在这个时候,注解的使用是很有必要的。


    以上就是自己的对Fastjson的简单介绍,如果希望了解更多,大家 可以到官网学习一下。 

  • 相关阅读:
    hdu2037 今年暑假不AC[贪心][区间调度问题]
    Features Track[STL map]
    Characters with Hash[签到题]
    hdu2094产生冠军[STL set]
    2018ECNA Difference[时空复杂度]
    hdu1276士兵队列训练问题[简单STL list]
    20190815网络与信息安全领域专项赛线上赛misc WriteUp
    hdu1873 看病要排队[优先队列]
    Pygame 贪吃蛇
    Windows安装Python3 curses模块
  • 原文地址:https://www.cnblogs.com/zhangxinerfenxiang/p/6256539.html
Copyright © 2011-2022 走看看