JSON数据交互方式

news2025/1/13 3:10:24

目录

一、JSON的特点

二、前后端开发推荐使用工具ApiPost

扩展:xml与json的区别

三、JSON语法格式

语法注意点:

四、在html中定义json数据类型

1.单个实体——>JSON数据

2.数组实体——>JSON数据

3.集合实体——>JSON数据

五、JSON数据的转换 java-->json

引入: 最流行的解析json的方式——>FastJson

1.导入FastJson依赖

2.创建实体类、并进行实例化

3.直接利用JSON.toJSONString(实体类)方法

4.sout输出即可

六、JSON数据的转换 json-->java

1.导入FastJson依赖

2.返回来的json数据需要进行实例化

3.直接利用JSON.parseArray() 和JSON.parseObject() 方法

4.sout输出即可

七、前后端数据交互的思想

补充

总结


一、JSON的特点

  • json是一种轻量级的数据交换格式

  • json可读性很高,网络传输速录很快

  • 完全独立与编程语言,什么语言都可以识别

二、前后端开发推荐使用工具ApiPost

ApiPost下载地址

扩展:xml与json的区别

xml:可扩展标记语言

json:轻量级交互方式

区别:json不占宽带、xml占宽带、所有现在xml编程配置文件

三、JSON语法格式

{
    "id":110,
    "name":"法外狂徒张三",
    "age":24
}

语法注意点:

  1. 外面由{}括起来

  2. 数据以"键:值"对的形式出现(其中键 多以字符串形式出现,值可取字符串,数值,甚至其他JSON对象)

  3. 每两个"键:值"对以逗号分隔(最后-个"键:值"对省略逗号)

  4. 参数值如果是string类型,就必须加引号,如果是数字类型,引号可加可不加

四、在html中定义json数据类型

1.单个实体——>JSON数据

<body>
	<!--
		var:表示声明一个变量
		let:在es6规范中,建议采用let来声明
		json要放在script里
	--> 
	<script>
		let person={
        	"eid": 001,
            "username": "dog",
            "sex"= "女",
            "age"= 18
        };
		console.log(person);//前端显示一下
	</script>
</body>



2.数组实体——>JSON数据

<body>
	<script>
		let person={
        	"person":[
            {
        	"eid": 001,
            "username": "dog",
            "sex"= "女",
            "age"= 18
       	    },
            {
            "eid": 002,
            "username": "张三",
            "sex"= "男",
            "age"= 18
            },
            {
            "eid": 003,
            "username": "李四",
            "sex"= "男",
            "age"= 18
            },
            {
            "eid": 004,
            "username": "王五",
            "sex"= "男",
            "age"= 18
            }
        ]
        };
		console.log(person);//前端显示一下
	</script>
</body>

3.集合实体——>JSON数据

<body>
	<script>
		let list=[
            {
        	"eid": 001,
            "username": "dog",
            "sex"= "女",
            "age"= 18
       	    },
            {
            "eid": 002,
            "username": "张三",
            "sex"= "男",
            "age"= 18
            },
            {
            "eid": 003,
            "username": "李四",
            "sex"= "男",
            "age"= 18
            },
            {
            "eid": 004,
            "username": "王五",
            "sex"= "男",
            "age"= 18
            }
        ];
		console.log(list);//前端显示一下
	</script>
</body>

五、JSON数据的转换 java-->json

引入: 最流行的解析json的方式——>FastJson

  • 非常的快

  • 不依赖其他的jar,比较轻量级别的

  • java Bean序列化程json字符串

1.导入FastJson依赖

<dependency>
	<groupId>com. alibaba</ groupId>
	<artifactId>fastjson</ artifactId>
	<version>1.2.3</version>
</dependency>
<dependency>
	<groupId>com.coLobu</ groupId>
	<artifactId>fastjson-jaxrs-json-provider</ artifactId>
	<version>0.3.1</version>
</dependency>

2.创建实体类、并进行实例化

: 将对象变为可传输内容的过程就是.方式: 1、Java原生: 简介 Java原生实体必须实现Serializable接口。

3.直接利用JSON.toJSONString(实体类)方法

#一个实体类
JSON.toJSONString(persons);
#数组类型的实体类
JSON.toJSONString(persons,true);
#集合类型的实体类
JSON.toJSONString(list,true);

4.sout输出即可

六、JSON数据的转换 json-->java

1.导入FastJson依赖

<dependency>
	<groupId>com. alibaba</ groupId>
	<artifactId>fastjson</ artifactId>
	<version>1.2.3</version>
</dependency>
<dependency>
	<groupId>com.coLobu</ groupId>
	<artifactId>fastjson-jaxrs-json-provider</ artifactId>
	<version>0.3.1</version>
</dependency>

2.返回来的json数据需要进行实例化

: 将对象变为可传输内容的过程就是.方式: 1、Java原生: 简介 Java原生实体必须实现Serializable接口。

3.直接利用JSON.parseArray() 和JSON.parseObject() 方法

#数组和普通的字符串
jsonTOjavaBean{
	String json ="字符串";
	Person person=JSON.parseObject(json,Person.class);
}
#集合类型
jsonTOjavaBean{
	String json ="字符串";
	List<Person> list=JSON.parseArray(json,Person.class);
}

   class解释:class类结构信息,自动校验,一样就赋值,不一样就不赋值

4.sout输出即可

七、前后端数据交互的思想

补充

1.如果想在JSON输出输入的时候按照一定的顺序,则需要使用注解的方式进行

​	@JSONField(ordinal=1)
​    	private int eid;
​	@JSONField(ordinal=2)
​    	private int age;

2.也可以不进行序列化——在输出输出的时候都不展示

	@JSONField(serialize = false)
​	private int age;  

3.更改输出输入的名字

​	@JSONField(ordinal=2, name="user")

总结

  • json是一种轻量级的数据交换格式

  • json可读性很高,网络传输速录很快

  • 完全独立与编程语言,什么语言都可以识别

  • json的语法格式一定要会,比如在写接口文档的时候就离不开json

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis的缓存穿透

文章目录1. 缓存穿透的理解2. 常见的解决方案有两种&#xff1a;3. 布隆过滤&#xff1a;4. 编码解决查询的缓存穿透问题&#xff1a;1. 缓存穿透的理解 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到…

安科瑞企业微电网AcrelEMS-MED医院能效管理平台应用分析

安科瑞 李亚俊 平台概述 AcrelEMS-MED医院能效管理平台依据《医疗建筑电气设计规范》《绿色医院建筑评价标准》、《医院建筑能耗监管系统建设技术导则》等行业规范建设&#xff0c;由电力监控及能效管理系统组成&#xff0c;涵盖了医院中压变配电系统、应急电源、隔离电源、照…

刷题11-和大于或等于K的最短子数组

刷题008-和大于或等于K的最短子数组 首先&#xff0c;审题要认真&#xff0c;题目说的是>target的长度最小的连续子数组&#xff0c;也就是返回值最小为0&#xff0c;其次是1 核心思想&#xff1a;设置两个指针left和right&#xff0c;初始都指向0&#xff0c;当sum<ta…

java学习day60(乐友商城)搭建后台、使用nginx进行反向代理、实现查询功能

1.搭建后台管理前端 1.1.导入已有资源 后台项目相对复杂&#xff0c;为了有利于教学&#xff0c;我们不再从0搭建项目&#xff0c;而是直接使用课前资料中给大家准备好的源码&#xff1a; 我们解压缩&#xff0c;放到工作目录中&#xff1a; 然后在Intellij idea中导入新的工…

(一)RT-Thread入门——内核介绍

目录 内核介绍 线程调度 时钟管理 线程间同步 线程间通信 内存管理 I/O 设备管理 总结 今天就开始学习有关RT-Thread的相关知识了&#xff0c;准备理论和实践同时进行&#xff0c;目前这一部分是原理理论部分&#xff0c;后面会结合实际的例子来加强学习&#xff0c;系…

Kubernetes 平台的生态系统介绍

Kubernetes作为一个容器云管理平台&#xff0c;与底层的基础架构、企业周边的公共服务形成了一个完备的生态系统。如图1所示&#xff0c;一个完备的Kubernetes系统在设计和实现时&#xff0c;需要考虑多层面的高可用性问题。 图1 Kubernetes 平台的生态系统因此&#xff0c;解…

一、计算机网络体系结构(二)参考模型

目录 2.1计算机网络分层结构 2.2协议、接口、服务的概念 2.2.1语法、语义和同步 2.2.2服务访问点&#xff08;SAP&#xff09; 2.2.3服务 2.3ISO/OSI参考模型和TCP/IP模型 2.3.1常见的三种参考模型 2.3.2 OSI参考模型 2.3.3 TCP/IP参考模型 2.1计算机网络分层结构 …

第13章 用户角色服务实现

013 Permissions、RoutePrefix、RedisMqKey、CustomApiVersion、SwaggerSetup Permissions&#xff1a;通过该类中的属性成员&#xff0c;当前程序的权限配置提供数据支撑。 RoutePrefix&#xff1a;通过该类中的属性成员&#xff0c;为Swagger JSON设定终结点&#xff0c;为“…

混入mixin

混入(mixin)&#xff1a; 混入 (mixin) 提供了一种非常灵活的方式&#xff0c;来分发 Vue 组件中的 可复用功能 -- &#xff08;混入对象可以封装在一个组件中&#xff0c;以供复用&#xff0c;放的都是一些公共使用的功能。&#xff09;一个混入对象可以包含任意组件选项。当…

ELK 企业级日志分析系统及Logstash过滤模块

目录 一、ELK 简介 1.1 ELK各组件介绍 ElasticSearch&#xff1a; Kiabana&#xff1a; Logstash&#xff1a; 1.2 可以添加的其它组件&#xff1a; Filebeat&#xff1a; 缓存/消息队列&#xff08;redis、kafka、RabbitMQ等&#xff09;&#xff1a; Fluentd&#x…

authorization server client resource 使用2

authorization server && client && resource 使用2 oauth2 整合 jwt authorization server && client && resource 使用1 中默认的示例就是使用的jwt 生成token&#xff08;用于&#xff09;,当然这里和我们用户登录的token是有区别的 oau…

【信息奥赛题解】昆虫繁殖(详细分析题解 C++ 代码)

昆虫繁殖问题 &#x1f31f; 【题目名称】昆虫繁殖 【题目描述】 科学家在热带森林中发现了一种特殊的昆虫&#xff0c;这种昆虫的繁殖能力很强。每对成虫过 XXX 个月后开始产卵&#xff0c;每月产 YYY 对卵&#xff0c;每对卵要过两个月长成成虫。 假设每个成虫不死&#…

SpringCloud01:回顾微服务和微服务架构

回顾微服务和微服务架构微服务微服务架构微服务架构技术栈微服务 微服务架构 微服务架构的四个核心问题 服务很多&#xff0c;客户端怎么访问&#xff1f;这么多服务&#xff0c;服务之间如何通信&#xff1f;这么多服务&#xff0c;如何治理&#xff1f;服务挂了怎么办&#x…

selenium开启Google持久化调试

google selenium调试 需要下载和自己浏览器版本相匹配的版本 这里用google浏览器演示 查看浏览器版本 google浏览器通过在搜索栏输入如下内容查看 chrome://settings/helpchromedriver 下载 到如下任意链接下载对应的版本 CNPM Binaries Mirror http://chromedriver.sto…

#pragma pack(n)内存对齐

1. 为什么要对齐&#xff1f; #pragma pack主要是用在字节对齐方面&#xff0c;为什么要对齐呢&#xff1f; 因为计算机中内存空间都是按照byte划分的&#xff0c;从理论上讲似乎对任何类型的变量的访问可以从任何地址开始&#xff0c;但实际情况是在访问特定变量的时候经常在…

chatGPT非常重要的能力居然不行,就让这个工具来拯救,让你SQL操作无忧

引言 各位好&#xff0c;相信看见这篇文章的朋友&#xff0c;应该也去体验过了chatGPT了吧~&#xff0c;确实chatGPT拉近了我们与未来科技的距离&#xff0c;所有别人火也是非常有道理的&#xff0c;为其点赞。 本文主要是关注chatGPT的SQL能力&#xff1b;因为本人从事IT教育…

用友T+数据备份与恢复方法汇总

一、正常数据备份与恢复 适合于用友T能正常登陆、正常备份的情况。 1、数据备份 以系统管理员admin登陆系统管理&#xff0c;点击“账套维护”&#xff0c;选择好需要备份的账套&#xff0c;点击“备份”&#xff0c;同时设置好备份路径&#xff0c;保存备份文件即可&#xf…

(附源码)Springboot服装网购网站 毕业设计 010234

Springboot服装网购网站 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管…

Day825.死锁问题 -Java 并发编程实战

死锁问题 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于死锁问题。 用 Account.class 作为互斥锁&#xff0c;来解决银行业务里面的转账问题&#xff0c;虽然这个方案不存在并发问题&#xff0c;但是所有账户的转账操作都是串行的&#xff0c;例如账户 A 转账户 B…

【华为上机真题 2022】完全二叉树非叶子节点后序遍历

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…