zoukankan      html  css  js  c++  java
  • FastJson学习

    1.前言

    1.1.FastJson的介绍:

    JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson

    1.2.FastJson的特点:

    1.FastJson数度快,无论序列化和反序列化,都是当之无愧的fast 
    2.功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum) 
    3.零依赖(没有依赖其它任何类库)

    1.3.FastJson的简单说明:

    FastJson对于json格式字符串的解析主要用到了下面三个类: 
    1.JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换 
    2.JSONObject:fastJson提供的json对象 
    3.JSONArray:fastJson提供json数组对象

    2.FastJson的用法

    首先定义三个json格式的字符串

    • 简单对象型
    
    
    //json字符串-简单对象型
    private static final String  JSON_OBJ_STR = "{"studentName":"lily","studentAge":12}";

    {
    "studentName": "lily", "studentAge": 12 }
    • 数组类型
    
    
    //json字符串-数组类型
    private static final String  JSON_ARRAY_STR = "[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]";


    [ {
    "studentName": "lily", "studentAge": 12 }, { "studentName": "lucy", "studentAge": 15 } ]
    • 复杂格式类型
    
    
    //复杂格式json字符串
    private static final String  COMPLEX_JSON_STR = "{"teacherName":"crystall","teacherAge":27,"course":{"courseName":"english","code":1270},"students":[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]}";


    {
    "teacherName": "crystall", "teacherAge": 27, "course": { "courseName": "english", "code": 1270 }, "students": [ { "studentName": "lily", "studentAge": 12 }, { "studentName": "lucy", "studentAge": 15 } ] }

    2.1.JSON格式字符串与JSON对象之间的转换

    2.1.1.json字符串-简单对象型与JSONObject之间的转换

    /**
     * json字符串-简单对象型到JSONObject的转换
     */
    @Test
    public void testJSONStrToJSONObject() {
    
        JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
    
        System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "
                + jsonObject.getInteger("studentAge"));
    
    }
    
    /**
     * JSONObject到json字符串-简单对象型的转换
     */
    @Test
    public void testJSONObjectToJSONStr() {
    
        //已知JSONObject,目标要转换为json字符串
        JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
        // 第一种方式
        String jsonString = JSONObject.toJSONString(jsonObject);
    
        // 第二种方式
        //String jsonString = jsonObject.toJSONString();
        System.out.println(jsonString);
    }

    2.1.2.json字符串(数组类型)与JSONArray之间的转换

    /**
     * json字符串-数组类型到JSONArray的转换
     */
    @Test
    public void testJSONStrToJSONArray() {
    
        JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);
    
        //遍历方式1
        int size = jsonArray.size();
        for (int i = 0; i < size; i++) {
    
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "
                    + jsonObject.getInteger("studentAge"));
        }
    
        //遍历方式2
        for (Object obj : jsonArray) {
    
            JSONObject jsonObject = (JSONObject) obj;
            System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "
                    + jsonObject.getInteger("studentAge"));
        }
    }
    
    /**
     * JSONArray到json字符串-数组类型的转换
     */
    @Test
    public void testJSONArrayToJSONStr() {
    
        //已知JSONArray,目标要转换为json字符串
        JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);
        //第一种方式
        String jsonString = JSONArray.toJSONString(jsonArray);
    
        // 第二种方式
        //String jsonString = jsonArray.toJSONString(jsonArray);
        System.out.println(jsonString);
    }
  • 相关阅读:
    Give root password for maintenance(or press Control-D to continue)
    docker swarm 拉2副本 及磁盘映射
    删除 Docker私有仓库镜像文件
    docker swarm 从私有仓库拉取 创建2个docker副本
    mysqldump 备份导出数据排除某张表
    node递归属性目录结构
    MySql批量更新方法
    npm 发布包
    实例学习Backbone.js(一)
    node.js中log4js的使用
  • 原文地址:https://www.cnblogs.com/bopo/p/9337696.html
Copyright © 2011-2022 走看看