SpringMVC中Json数据交互处理示例详解

 更新时间:2025年03月03日 08:23:15   作者:Y小夜  
这篇文章主要介绍了SpringMVC中Json数据交互处理的相关资料,分别讲解了JSON的基本概念、构成要素、数据类型、对象和数组的表示方法、字符串的转义规则以及JSON与JavaScript的关系,文中通过代码介绍的非常详细,需要的朋友可以参考下

Json概述

Json构成要素

  • 基本数据类型:JSON 定义了少数几个基本数据类型,它们是数字、布尔值、字符串、数组、对象以及 null。这些数据类型构成了 JSON 处理数据的基础,并且它们与大多数编程语言的原生数据类型相兼容。
  • 对象表示:在 JSON 中,对象是由键值对构成的集合,用花括号括起来。每个键名后面跟着一个冒号和相应的值,不同的键值对之间用逗号隔开。对象的键通常使用双引号包围的字符串表示。
  • 数组表示:数组是值的有序集合,以方括号括起来。数组中的值可以是简单类型,也可以是对象或其他数组,且数组可以嵌套。
  • 值的多样性:JSON 的值可以是简单类型,也可以是对象或数组。这种灵活的结构使得 JSON 能够高效地表示复杂的数据结构。
  • 字符串的转义:JSON 的字符串必须使用双引号括起来,并且可以包含转义字符来表示那些无法直接输入的字符,例如回车符或制表符。

JSON 与 JavaScript 的关系

  • 序列化与反序列化:在 JavaScript 中,可以使用 JSON.stringify() 方法将一个对象序列化为 JSON 格式的字符串,而 JSON.parse() 方法则可以将一个 JSON 格式的字符串反序列化回一个 JavaScript 对象。
  • 语言无关性:尽管 JSON 是基于 JavaScript 的语法,但它是独立于语言的。许多其他的编程语言也提供了解析和生成 JSON 数据的库,这体现了 JSON 作为数据交换格式的通用性。

JSON 的优点

  • 可读性强:由于 JSON 采用简洁的文本格式,它非常容易被人阅读和理解,同时也容易由程序进行解析。
  • 解析速度快:相较于 XML,JSON 具有更小的体积和更快的解析速度。它的设计初衷就是为了提升数据交换的效率。
  • 跨语言支持:JSON 被广泛支持的特性使其成为不同编程环境间理想的数据交换格式。无论是动态语言还是静态语言,都能找到相应的 JSON 解析库。

JSON 的应用

  • Web 应用:在 Web 开发中,JSON 常用于客户端与服务器之间的数据传输。由于其轻量化的特点,非常适合于 AJAX 通信。
  • API 服务:现代的 Web API,如 RESTful API,通常选择 JSON 作为其主要的数据交换格式,因为它简单、灵活且易于扩展。
  • 配置文件:JSON 格式也被用作应用程序的配置文件,它可以存储应用设置和参数,便于程序读取和修改

JSON 工具的使用

  • 格式化与校验:在线的 JSON 工具允许用户对 JSON 数据进行格式化和校验,帮助开发者快速定位格式错误并进行修正。
  • 数据转换:一些工具还提供 JSON 到各类编程语言特定数据结构的转换功能,例如将 JSON 转换为 Java 或 C# 实体类。
  • 编码与解码:对于特殊编码需求,例如 URL 编码或 Base64 编码,也有相应的工具支持 JSON 数据的编解码操作

返回json字符串统一解决

在类上直接使用 @RestController ,这样子,里面所有的方法都只会返回 json 字符串了,

不用再每一个都添加@ResponseBody !我们在前后端分离开发中,一般都使用 @RestController ,十分便捷!

例如:

@RestController
public class UserController {
//produces:指定响应体返回类型和编码
@RequestMapping(value = "/json1")
public String json1() throws JsonProcessingException {
//创建一个jackson的对象映射器,用来解析数据
ObjectMapper mapper = new ObjectMapper();
//创建一个对象
User user = new User("秦疆1号", 3, "男");
//将我们的对象解析成为json格式
String str = mapper.writeValueAsString(user);
//由于@ResponseBody注解,这里会将str转成json格式返回;十分方便
return str;
}
}

FastJson

fastjson.jar是阿里开发的一款专门用于Java开发的包,可以方便的实现json对象与JavaBean 对象的转换,实现JavaBean对象与json字符串的转换,实现json对象与json字符串的转换。 实现json的转换方法很多,最后的实现结果都是一样的。

fastjson 的 pom依赖!

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>

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字符串之间的相互转化。

总结 

到此这篇关于SpringMVC中Json数据交互处理的文章就介绍到这了,更多相关SpringMVC Json数据交互处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatis中的test语句失效处理方式

    mybatis中的test语句失效处理方式

    这篇文章主要介绍了mybatis中的test语句失效处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Springboot实现邮箱验证码注册与修改密码及登录功能详解流程

    Springboot实现邮箱验证码注册与修改密码及登录功能详解流程

    验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中。传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后春笋般涌现,今天给大家分享一篇SpringBoot实现滑块验证码
    2022-11-11
  • protobuf简介及使用流程

    protobuf简介及使用流程

    本文介绍了Protocol Buffers(protobuf)的数据结构序列化和反序列化框架,包括其特点、使用流程和快速上手,通过一个简单的通讯录示例,展示了如何创建.proto文件、添加注释、编写消息定义、编译.proto文件以及进行序列化和反序列化操作,感兴趣的朋友一起看看吧
    2025-02-02
  • Java判断两个集合是否具有交集及如何获得交集详解

    Java判断两个集合是否具有交集及如何获得交集详解

    这篇文章主要给大家介绍了关于Java判断两个集合是否具有交集及如何获得交集的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Java URL自定义私有网络协议

    Java URL自定义私有网络协议

    URI与URL的区别 一.先来序言一段 二.协议的自定义的理解 三.自定义协议与URL的关系 四.URL自定义私有协议实战 五.后话,自定义mineType解析器
    2016-04-04
  • IDEA中将SpringBoot项目提交到git仓库的方法步骤

    IDEA中将SpringBoot项目提交到git仓库的方法步骤

    本文主要介绍了IDEA中将SpringBoot项目提交到git仓库的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • springboot vue 跨域问题的解决

    springboot vue 跨域问题的解决

    这篇文章主要介绍了springboot vue 跨域问题的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • SpringBoot处理 CORS 跨域的方法详解

    SpringBoot处理 CORS 跨域的方法详解

    Springboot跨域问题,是当前主流web开发人员都绕不开的难题,CORS是一个W3C标准,全称是”跨域资源共享”,本文将给大家详细介绍SpringBoot 如何处理 CORS 跨域,感兴趣的同学跟着小编一起来看看吧
    2023-07-07
  • servlet重定向详解(八)

    servlet重定向详解(八)

    这篇文章主要为大家详细介绍了servlet重定向的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • java内部类原理与用法详解

    java内部类原理与用法详解

    这篇文章主要介绍了java内部类原理与用法,结合实例形式分析了Java内部类的概念、原理、分类及相关使用技巧,需要的朋友可以参考下
    2019-05-05

最新评论