fastjson是什么框架?fastjson相关介绍

在日常的java项目开发中,JSON的使用越来越频繁,对于Json的处理工具也有很多。作为阿里开源的一个高性能的JSON框架FastJson很受大家的欢迎,那fastjson是什么框架?下面来我们就来给大家讲解一下这方面的内容。

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

FastJson的特点:

1) FastJson数据处理速度快,无论序列化(把JavaBean对象转化成Json格式的字符串)和反序列化(把JSON格式的字符串转化为Java Bean对象),都是当之无愧的fast;

2) 功能强大(支持普通JDK类,包括javaBean, Collection, Date 或者enum);

3) 零依赖(没有依赖其他的任何类库);

FastJson的简单说明:

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

1) JSON:FastJson的解析器,用于JSON格式字符串与JSON对象及JavaBean之间的转化。也是最基础的一个类,因为看过源码之后会发现,下面的两个类继承了JSON类,其中很多方法的实现也是基于JSON类中的parse()方法。

2) JSONObject: FastJson提供的json对象,用于将String对象、javaBean、Collection等解析为JSON格式的对象。

3) JSONArray: FastJson提供json数组对象。

Fastjson中的经常调用的方法

parse(String text);: 把JSON文本parse为JSONObject或者JSONArray

parseObject(String text);: 把JSON文本parse成JSONObject

parseArray(String text);: 把JSON文本parse成JSONArray

toJSONString(Object object);: 将JavaBean序列化为JSON文本

实例:

服务器接收请求数据,发送 JSON 回浏览器,并根据不同的请求方式,分别解决中文乱码问题:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/json;charset=utf-8");
    //允许所有IP地址和端口请求 response.setHeader("Access-Control-Allow-Origin", "*");
    //允许所有的文档类型请求 response.setHeader("Access-Control-Content-Type", "*");
    HashMapmap = new HashMap();
    map.put("user", new String(request.getParameter("user")
        .getBytes("ISO-8859-1"), "utf-8"));
    map.put("psw", new String(request.getParameter("psw")
        .getBytes("ISO-8859-1"), "utf-8"));
    System.out.println(new String(request.getParameter("user")
        .getBytes("ISO-8859-1"), "utf-8"));
    String jsonString = JSON.toJSONString(map);
    response.getWriter()
        .println(jsonString);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    request.setCharacterEncoding("utf-8");
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/json;charset=utf-8");
    //允许所有IP地址和端口请求 response.setHeader("Access-Control-Allow-Origin", "*");
    //允许所有的文档类型请求 response.setHeader("Access-Control-Content-Type", "*");
    HashMapmap = new HashMap();
    map.put("user", request.getParameter("user"));
    map.put("psw", request.getParameter("psw"));
    System.out.println(request.getParameter("user"));
    String jsonString = JSON.toJSONString(map);
    response.getWriter()
        .println(jsonString);
}

服务器接收 JSON 并取出数据发回浏览器:

浏览器:

$.ajax(
{
    url: 'http://localhost:8080/RequestNResponse/GetJSON'
    , method: 'GET'
    , data:
    {
        json: `{ "username": "张三", "age": 23, "hobby":["篮球","足球","羽毛球"] }`
    }
    , complete: function (res)
    {
        console.log(res)
        $('body')
            .append(`${res.responseText}
`)
    }
})

服务器:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    //允许所有IP地址和端口请求 response.setHeader("Access-Control-Allow-Origin", "*");
    //允许所有的文档类型请求 response.setHeader("Access-Control-Content-Type", "*");
    String jsonStr = new String(request.getParameter("json")
        .getBytes("ISO-8859-1"), "utf-8");
    JSONObject object = JSON.parseObject(jsonStr);
    response.getWriter()
        .println("username:" + object.get("username"));
    response.getWriter()
        .println("username:" + object.get("age"));
    JSONArray hobbies = (JSONArray) object.get("hobby");
    hobbies.forEach(obj - >
    {
        try
        {
            response.getWriter()
                .println(obj);
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block e.printStackTrace();
        }
    });
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    //允许所有IP地址和端口请求 response.setHeader("Access-Control-Allow-Origin", "*");
    //允许所有的文档类型请求 response.setHeader("Access-Control-Content-Type", "*");
    String jsonStr = request.getParameter("json");
    JSONObject object = JSON.parseObject(jsonStr);
    response.getWriter()
        .println("username:" + object.get("username"));
    response.getWriter()
        .println("username:" + object.get("age"));
    JSONArray hobbies = (JSONArray) object.get("hobby");
    hobbies.forEach(obj - >
    {
        try
        {
            response.getWriter()
                .println(obj);
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block e.printStackTrace();
        }
    });
}

好了,关于fastjson的相关内容就分享到这里,fastjson数据处理速度快,功能完善,是大家开发的好帮手。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

ultraedit许可证密钥怎么安装?ultraedit是什么?

java大厂社招面试题有哪些?附面试答案!

java怎么打开运行窗口?java打开运行窗口方法