前后端角度看接口(什么是json)?

article/2025/10/31 23:02:34

文章目录

    • 什么是JSON?
    • 为什么需要JSON?
    • 总结

什么是JSON?

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

json前两个字就是js,说明其与js必然存在一些联系,其实json可以理解为盛装js数据的一个容器(不是只能装js的,不要扣这些),说白了,就是储存数据的一个小玩意儿。其实如果你身边有搞前端的同学,不难发现,他们会经常说接口、报文,对于一个后端小白的我来说,也很想明白这究竟是个什么东东,最近工作一直做前后端开发,所以跟json结下了缘。

前端中json大致是形如这个样子的,就是冒号左边一个名字(键),右边是具体的值(值),其实就是键值对。。是不是很简单,如果不简单也不会这么火了↓↓↓

var json = {"xxx":"xxx"};

右边可以是一个数字,可以是一个对象,可以是字符串,可以是一个数组,可以是一个json(套娃),我给大家举个例子大家就明白了,既然是容器,必然要有大的,有小的,啥都能装

装数字:

var feeInfoList = {"num":11};

通过feeInfoList.num就可以拿到num对应的值:11,很简单吧?
装字符串:

var feeInfoList = {"name":"小斌哥"};

通过feeInfoList.name,就能拿到带双引号的"小斌哥"啦~
装对象:

var 小斌哥= {"name":"小斌哥", "age":21, "sex":"爷们"};

小斌哥这个对象里面包含姓名、年龄和性别,多个数据可以通过逗号隔开,因此,小斌哥这个对象就生成了!!
装数组

var array = {"array":[{"name":"小斌哥","sex":"爷们","age":21},{"name":"貂蝉","sex":"美女","age":18}
]};

直接看可能比较懵,但是仔细看,键是"array",值就是后面的一大坨,对吗?那一大坨拆开看,是不是就是一个个的对象,对象之间用逗号隔开了,对象里面有姓名、性别和年龄,每一个属性都是用键值对装的,并且用逗号隔开,是不是很容易呢,其实如果别人给你一大堆报文,可以用utools(一个软件),直接复制进去,就可以清楚的看到json格式了,很方便~
装json:

var json = {"json":{"json":{"json":11}}
}

哈哈,所谓套娃,就是可以在值那里一直用json,所以想拿到11,就需要通过:json.json.json.json,就能取到11了,不过这只是一个演示,除非真的有这样的需求,要不然还是不要这么玩儿,他毕竟只是一个容器,以盛装数据并且简洁易懂为主~

为什么需要JSON?

等到去了公司做前后端分离的项目的时候,大家会发现前端与后端交互大部分都是接口(其实就是用json装的一些数据),举个栗子,用户在浏览器输入了用户名和密码要登录,这个输入的用户名和密码肯定会发到后台,后台进行一系列的处理并且给前台反馈结果,画个图就是这样的:
在这里插入图片描述
总之前后端交互就是通过json报文,可以联想一下最开始学javaWeb的时候我们是怎么进行前后端交互的:

	String name = request.getParameter("name");String pwd = request.getParameter("pwd");

在这里插入图片描述
有没有引起你的某种回忆,哈哈~
为什么不建议用servlet进行接收前端的数据呢?一个是负载压力大,后端成了爹了,啥都要管,权重非常高,你每次接收前台的数据都需要初始化加载servlet各种乱七八糟的东西,之后才能进行处理;第二是耦合太高,等你花了半天劲写完了代码,需求发生变更,你要改controller层、dao层、service层,该改的不该改的你都得改,体验过的童鞋麻烦点个赞。。

总结

大家可以看到,通过json,非常方便快捷地把一些复杂的对象和数据进行发送。每个公司肯定都对前端的ajax进行了封装,所以不需要每次都

 $(document).ready(function(){  var saveDataAry=[];  var data1={"userName":"zhangsan","address":"bj"};  var data2={"userName":"lisi","address":"nj"};  saveDataAry.push(data1);  saveDataAry.push(data2);         $.ajax({ type:"POST", url:"userInfo/userUpd", dataType:"json",      contentType:"application/json",               data:JSON.stringify(saveData), success:function(data){ ...	...} }); });  

使用起来也非常的方便~
另外阿里巴巴有一个fastjson,可以非常快速地把json序列化和反序列化:

String text = JSON.toJSONString(obj); //序列化
VO vo = JSON.parseObject("{...}", VO.class); //反序列化

大家可以试一下~
如果小伙伴们还有什么疑问欢迎留言~


http://chatgpt.dhexx.cn/article/H6G9Adft.shtml

相关文章

JSON接口

RestController 相当于ControllerResponseBody两个注解的结合,返回json数据,不能返回jsp,html页面。 Autowired 对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。 PostMapping 映射一个POST请求。 PutMapping 处理…

JSON端口操作实例

JSON 端口可直接实现在 JSON 和 XML 之间进行转换。端口会自动检测输入文件是 JSON 还是 XML,然后将文件在两种格式间相互转换。 该端口较多的是运用在API接口调用集成方案的项目当中,我们以百思买项目为例,知行之桥将接收到的百思买的EDI报…

JSON-初识+解析

1. JSON 1.1 什么是JSON JSON(JavaScript Object Notation, JS 对象标记):是一种轻量级的数据交换格式。JSON使用JavaScript 语法来描述数据对象,采用完全独立于语言的文本格式,易于存储和交换。 JSON 的网络媒体类型…

unity协程coroutine 简明教程

本篇内容基于 https://gamedevbeginner.com/coroutines-in-unity-when-and-how-to-use-them/ 以及官方教程 为什么使用协程 协程非常适合设置需要随时间发生变化的游戏逻辑。很自然我们会想到update,update里指出每一帧unity会执行什么操作。协程则可以将代码从up…

浅析Unity协程实现原理

介绍 协程Coroutine在Unity中一直扮演者重要的角色。可以实现简单的计时器、将耗时的操作拆分成几个步骤分散在每一帧去运行等等,用起来很是方便。 但是,在使用的过程中有没有思考过协程是怎么实现的?为什么可以将一段代码分成几段在不同帧执…

Unity协程和线程的区别深入理解(附实验展示)

Unity协程和线程的区别附实验展示 写在前面协程、进程、线程的概念进程与线程的区别协程与线程的区别实验1:协程中执行普通函数实验2:协程中开启另一个协程实验3:协程中开启WWW请求实验4:一个脚本中多个协程访问临界资源实验5&…

Unity 协程 Unity Task UniTask

协程 使用 StartCoroutine 和 IEnumerator yield return null 暂停执行并随后在下一帧恢复 yield return new WaitForSeconds(1f); 延迟1秒 waitfor系列有好几个 WaitForSeconds 和 WaitForSecondsRealtime 的区别 使用缩放时间将协程执行暂停指定的秒数。 实际暂停时间等于…

Unity 协程探究

一、官方手册中的描述 1、Manual/Coroutines 函数在调用时, “从调用到返回” 都发生在一帧之内,想要处理 “随时间推移进行的事务”, 相比Update,使用协程来执行此类任务会更方便。 协程在创建时,通常是一个 “返回值类型 为 …

Unity 协程底层原理解析

1、协程 unity是单线程设计的游戏引擎,unity实际上有多条渲染线程,但对于unity调用我们编写的游戏脚本,都是放在一个主线程当中进行调度的。因此对于我们写的游戏脚本unity是单线程的。 协程不是进程或者线程,它的执行过程更类似…

Unity协程那些事儿

Unity协程那些事儿 1、什么是协程?2、协程的使用3、关于yield4、关于IEnumerator/IEnumerable5、从IEnumerator/IEnumerable到yield6、Unity协程机制的实现原理7、源码分析8、总结 1、什么是协程? 用过Unity的应该都知道协程,今天就给大家来…

Unity⭐️当Unity协程遇到while

文章目录 Unity协程是一个老生常谈的知识点了,但今天博主却差点被一篇文章忽悠了 那就是这句话: 为什么说这句话不对呢 那就是当遇到while时,我们再来检验这句话的正确性: 按上面那句话,应该每次yield return后&…

深入探讨Unity协程及其使用

深入探讨Unity协程及其使用 协程 协程在Unity中是个很重要的东东,相信很多人都使用过,它能够非常方便的进行异步等待操作,可以说,用好协程,可以使你的代码更加优雅,然而,如果用不好&#xff0…

Unity 协程、模拟协程

理解协程 IEnumeratoryield 强大的迭代器 IEnumerator 就是一个函数容器 里面保存了一个一个的函数 IEnumator会依次执行每个函数 而每个函数都有一个返回值 保存在IEnumator.Currect里面 看下面这个例子 IEnuermator start_Coroutine(){Debug.Log("HellWord")…

unity 协程特点

协程 一. Unity中使用协程1. 什么是协程2. 如何使用3. 协程的应用场景创建补间动画打字机效果异步加载资源 4. 注意事项 二. Unity协程的底层原理1. 协程本体:C#的迭代器函数2. 协程调度:MonoBehaviour生命周期中实现3. Unity协程的架构 三. 扩展Unity的…

Unity协程深入及实现

Unity协程深入 文章目录 Unity协程深入Unity协程简介Unity协程的用法协程的原理协程的缺陷自己实现协程参考 Unity协程简介 Unity中的协程能够允许我们将一个任务分散到多个帧中。注意:协程(协同执行)和多线程有本质区别。 协程不是线程&…

unity 协程

首先声明:协程不是线程,协程在主线程中运行,而线程是单独开辟线程 以下是u3d关于协程的调用机制的解释: “在Unity3D中,使用MonoBehaviour.StartCoroutine方法即可开启一个协同程序,也就是说该方法必须在…

【Unity】Unity协程(Coroutine)的原理与应用

文章目录 前言一、什么是协程二、应用场景1.异步加载资源2.将一个复杂程序分帧执行3.定时器 三、协程的使用注意事项 四、Unity协程的底层原理1. 协程本体:C#的迭代器函数2. 协程调度:MonoBehaviour生命周期中实现 五、参考资料 前言 本文是作者在学习U…

Unity-协程详解

1. 简介 unity的**协程(Coroutine)**只是在c#的基础上做了一层封装,其实yield是C#的关键字。 unity协程是一个能够暂停协程执行,暂停后立即返回主函数,执行主函数剩余的部分,直到中断指令完成后&#xff…

Unity 协程(Coroutine)原理与用法详解

前言: 协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式…

linux的用户管理

1.linux的用户管理 linux的用户管理和组管理, 每个用户都必须要有一个且仅有一个初始组,可以有多个附加组,使用useradd命令创建用户时,如果没有指定初始组,系统默认会创建一个于其同名的组。 用户和组信息保存在4个文…