栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC学习笔记总结【六】--Json、JackJson、FastJson

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC学习笔记总结【六】--Json、JackJson、FastJson

文章目录

JSON 概述JackJsonFastJson

JSON 概述

JSON(Javascript Object Notation,S对象标记)是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在Javascript语言中,一切都是对象。因此,任何Javascript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。看看他的要求和语法格式:

对象表示为键值对,数据由逗号分隔花括号保存对象方括号保存数组

JSON键值对是用来保存Javascript对象的一种方式,和Javascript对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号" "包裹,使用冒号∶分隔,然后紧接着值:

{“name” : "aaa"}
{"age" : "11"}
{"sex" : "男"}
JackJson

开源的 Jackson 是 Spring MVC 内置的 JSON 转换工具。相比 json-lib 框架,Jackson 所依赖 jar 文件较少,简单易用并且性能也要相对高些。并且 Jackson 社区相对比较活跃,更新速度也比较快。

但是 Jackson 对于复杂类型的 JSON 转换 Bean 会出现问题,一些集合 Map、List 的转换出现问题。而 Jackson 对于复杂类型的 Bean 转换 JSON,转换的 JSON 格式不是标准的 JSON 格式。

1、导依赖


    com.fasterxml.jackson.core
    jackson-databind
    2.10.0

2.配置Spring MVC核心配置文件


    
        
            
        
        
            
                
                    
                
            
        
    

FastJson

FastJson 是用 Java 语言编写的高性能 JSON 处理器,由阿里巴巴公司开发。

FastJson 不需要依赖其它的 jar 文件,就能直接在 JDK 上运行。

FastJson 在复杂类型的 Bean 转换 JSON 上会出现一些问题,可能会出现引用的类型,导致 JSON 转换出错,需要制定引用。

FastJson 采用独创的算法,将 parse 的速度提升到极致,超过所有 JSON 库。

依赖

   
        com.alibaba
        fastjson
        1.2.75
    

配置Spring MVC核心配置文件



    
        
            
        
        
    

fastjson三个主要的类:

【JSonObject 代表json对象】

JSONObject实现了Map接口,猜想JSONObject底层操作是由Map实现的。JSONObject对应json对象,通过各种形式的get()方法可以获取json对象中的数据,也可利用诸如size(), isEmpty()等方法获取"键:值"对的个数和判断是否为空。其本质是通过实现Map接口并调用接口中的方法完成的。 【JSonArray 代表json对象数组】

内部是有List接口中的方法来完成操作的。 【JSON 代表JSONObject和JSONArray的转化】

JSON类源码分析与使用仔细观察这些方法,主要是实现json对象,json对象数组,javabean对象,json字符串之间的相互转化。

import com.alibaba.fastjson.JSON;

//@Controller
@RestController //就不用写 @ResponseBody
public class UserController {

    //@RequestMapping(value = "/j1",produces = "application/json;charset=utf-8") 或在MVC配置文件中配置
    //@ResponseBody   //就不会走视图解析器,直接返回一个字符串
    @RequestMapping("/j1")
    public String json4() throws JsonProcessingException {
        List userList = new ArrayList();

        User user1 = new User("kaka1", 123, "男");
        User user2 = new User("kaka2", 123, "男");
        User user3 = new User("kaka3", 123, "男");
        User user4 = new User("kaka4", 123, "男");

        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);

        System.out.println("-------java对象  转  JSON字符串------");
        String string1 = JSON.toJSONString(userList);
        System.out.println("JSON.toJSonString(userList)===>" + string1);

        System.out.println("-------JSON字符串  转  java对象------");
        String str1 = JSON.toJSONString(user1);
        User parseObject = JSON.parseObject(str1, User.class);
        System.out.println("JSON.parseObject(str1, User.class)===>" + parseObject);

        System.out.println("-------java对象  转  JSON对象------");
        JSonObject toJSON = (JSONObject) JSON.toJSON(user1);
        System.out.println("JSON.toJSON(user1)===> " + toJSON);

        System.out.println("-------JSON对象  转  Java对象------");
        User toJavaObject = JSON.toJavaObject(toJSON, User.class);
        System.out.println("JSON.toJavaObject(toJSON, User.class)===> " + toJavaObject);


        return JSON.toJSONString(userList);
    }
 }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755803.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号