数据交换格式

news2024/10/3 21:26:56

1、什么是数据交换格式

        数据交换格式,就是服务器端客户端之间进行数据传输与交换的格式

        前端领域,经常提及的两种数据交换格式分别是 XML JSON。其中 XML 用的非常少,所以,我们重点要学习的数据交换格式就是 JSON

 

2、XML

2.1、什么是XML

        XML 的英文全称是 EXtensible Markup Language,即可扩展标记语言。因此,XML HTML 类似,也是一种标记语言。

2.2、XMLHTML的区别 

XML HTML 虽然都是标记语言,但是,它们两者之间没有任何的关系。

  • HTML 被设计用来描述网页上的内容,是网页内容的载体
  • XML 被设计用来传输和存储数据,是数据的载体

2.3、XML的缺点 

<note>

  <to>ls</to>

  <from>zs</from>

  <heading>通知</heading>

  <body>晚上开会</body>

</note>

  • XML 格式臃肿,和数据无关的代码多,体积大,传输效率低
  • 在 Javascript 中解析 XML 比较麻烦

3、JSON

3.1、什么是JSON

概念:JSON 的英文全称是 JavaScript Object Notation,即“JavaScript 对象表示法”。简单来讲,JSON 就是 Javascript 对象和数组的字符串表示法,它使用文本表示一个 JS 对象或数组的信息,因此,JSON 的本质是字符串

作用:JSON 是一种轻量级的文本数据交换格式,在作用上类似于 XML,专门用于存储和传输数据,但是 JSON XML 更小更快更易解析

现状:JSON 是在 2001 年开始被推广和使用的数据格式,到现今为止,JSON 已经成为了主流的数据交换格式

3.2、JSON的两种结构

        JSON 就是用字符串来表示 Javascript 的对象和数组。所以,JSON 中包含对象数组两种结构,通过这两种结构的相互嵌套,可以表示各种复杂的数据结构。

对象结构:对象结构在 JSON 中表示为 { } 括起来的内容。数据结构为 { key: value, key: value, … } 的键值对结构。其中,key 必须是使用英文的双引号包裹的字符串,value 的数据类型可以是数字字符串布尔值null数组对象6种类型。

数组结构:数组结构在 JSON 中表示为 [ ] 括起来的内容。数据结构为 [ "java", "javascript", 30, true … ] 。数组中数据的类型可以是数字字符串布尔值null数组对象6种类型。 

3.3、JSON语法注意事项 

  • 属性名必须使用双引号包裹
  • 字符串类型的值必须使用双引号包裹
  • JSON 中不允许使用单引号表示字符串
  • JSON 中不能写注释
  • JSON 的最外层必须是对象或数组格式
  • 不能使用 undefined 或函数作为 JSON 的值

JSON 的作用:在计算机与网络之间存储和传输数据。

JSON 的本质:用字符串来表示 Javascript 对象数据或数组数据

3.4、JSONJS对象的关系

        JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。例如:

//这是一个对象
var obj = {a: 'Hello', b: 'World'}

//这是一个 JSON 字符串,本质是一个字符串
var json = '{"a": "Hello", "b": "World"}' 

3.5、JSONJS对象的互转

(1)要实现从 JSON 字符串转换为 JS 对象,使用 JSON.parse() 方法:

var obj = JSON.parse('{"a": "Hello", "b": "World"}')
//结果是 {a: 'Hello', b: 'World'}

(2)要实现从 JS 对象转换为 JSON 字符串,使用 JSON.stringify() 方法:

var json = JSON.stringify({a: 'Hello', b: 'World'})
//结果是 '{"a": "Hello", "b": "World"}'

3.6、序列化和反序列化

(1)把数据对象转换为字符串的过程,叫做序列化,例如:调用 JSON.stringify() 函数的操作,叫做 JSON 序列化。

(2)把字符串转换为数据对象的过程,叫做反序列化,例如:调用 JSON.parse() 函数的操作,叫做 JSON 反序列化。 

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

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

相关文章

数学建模学习笔记-算法(整数规划模型的基本概念)

目录 基本概念 定义 分类&#xff1a; 数学模型 分为 整数规划和松弛的线性规划的关系​编辑 基本概念 定义 数学规划中变量限制为整数时&#xff0c;称为整数规划 线性规划中变量限制为整数时&#xff0c;称为整数线性规划 分类&#xff1a; 变量全限制为整数时&#…

Adversarial Robustness vs. Model Compression, or Both?

众所周知&#xff0c;深度神经网络&#xff08;DNN&#xff09;容易受到对抗性攻击&#xff0c;这种攻击是通过在良性示例中添加精心设计的扰动来实现的。基于最小-最大鲁棒优化的对抗性训练可以提供对抗性攻击的安全概念。然而&#xff0c;对抗性鲁棒性需要比仅具有良性示例的…

二叉树的Morris遍历

Morris 遍历的是指就是避免用栈结构&#xff0c;而是让下层到上层有指针&#xff0c;具体时通过让底层节点指向 null 的空闲指针指回上层的某个节点&#xff0c;从而完成下层到上层的移动。 Morris 遍历的过程&#xff1a; 假设当前节点为cur&#xff0c;初始时cur就是整棵树的…

33-剑指 Offer 34. 二叉树中和为某一值的路径

题目给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点是指没有子节点的节点。示例 1&#xff1a;输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum 22输出&#…

邮箱中的Qt线程设计

邮箱&#xff08;deepin-mail&#xff09;主要使用Qt框架开发&#xff0c;是一个有大量并行任务且需要监控进度和结果的项目&#xff0c;任务的优先级调整和支持取消回滚也是必不可少。Qt已经为我们提供了多种线程设计的方法&#xff0c;可以满足绝大部分使用场景&#xff0c;但…

钧瓷产业基础架构(SCA架构)是钧瓷产业发展的核心引擎

《钧瓷内参》独立客观&#xff0c;原创前瞻&#xff0c;深度评论&#xff0c;定期推送 钧 瓷 内 参 第3期&#xff08;总第335期&#xff09; 2023年1月3日 钧瓷产业数字化发展的下一个阶段——钧瓷共同体&#xff0c;是钧瓷产业数字化发展的必然趋势。 实现钧瓷共同体的路线…

JavaSE从基础到入门:String类的学习

前言 字符串广泛应用 在 Java 编程中&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了 String 类来创建和操作字符串。 1.String类的方法 1.字符串的构造方法 使用常量串构造 String s1 "hello world"; System.out.println(s1);直接newString对象…

【Linux】Linux基本权限

作者&#xff1a;一个喜欢猫咪的的程序员 专栏&#xff1a;《Linux》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 1.shell命令以及运行原理 2.Linux权限 2.1Linux权限的概念 2.2Linux上用户…

DALLE2-文本图像生成

文章目录摘要算法解码器prior图像处理变体插值文本差异限制论文&#xff1a; 《Hierarchical Text-Conditional Image Generation with CLIP Latents》github&#xff1a; https://github.com/lucidrains/DALLE2-pytorchhttps://github.com/LAION-AI/dalle2-laion摘要 CLIP已经…

window环境安装mysql8.0.12版本的安装、配置(详细步骤图解)

目录一、mysql官网下载网址二、下载步骤三、安装步骤四、测试链接一、mysql官网下载网址 mysql官网下载网址 https://www.mysql.com/ 二、下载步骤 浏览器输入https://www.mysql.com/网址&#xff0c;点击【DownLoads】&#xff0c;如下图&#xff1a; 向下滑动网页&#x…

软件测试面试注意事项汇总

面对最近的复工热潮&#xff0c;不少求职者也开始蠢蠢欲动准备找工作了。相信大家都知道疫情下面试求职的压力是有史以来最大的&#xff0c;我们唯一能做好的只有积极的准备面试&#xff0c;让自己可以更加从容的面对的面试官的提问。下面小编为大家汇总了软件测试面试过程中的…

CSDN官方猿如意工具体验

2022年注定是不平凡的一年&#xff0c;2022再见&#xff0c;2023你好&#xff01; 2023愿我们发财&#xff0c;被爱&#xff0c;一路好运常在&#xff01;愿所念之人平安喜乐&#xff0c;所想之事顺心如意&#xff0c;岁岁常欢喜&#xff0c;万事皆胜意&#xff01; 猿如意工具…

中间件:Win10安装运行Kafka

一、JDK环境安装配置 可参考&#xff1a;百度安全验证 二、Zookeeper安装配置 1、下载 &#xff1a; Index of /dist/zookeeper/zookeeper-3.4.9 2、解压到本地&#xff0c;目录不要带中文符号&#xff0c;保证纯英文 3、zoo.cfg修改 4、cmd运行&#xff0c;使用命令zkServe…

ConcurrentHashMap 线程安全

JDK1.7 结构 数据结构是数组segment对象&#xff0c;采用segment分段锁和CAS保证并发。 加锁 JDK1.7中的ConcurrentHashMap是由 segment数组结构和 HashEntry 数组结构组成&#xff0c;即 ConcurrentHashMap把哈希桶切分成小数组(Segment )&#xff0c;每个Segment 有n个 Hash…

终于!Linaro 加盟 Zephyr 项目

导读为物联网构建实时操作系统的开源协作项目 Zephyr 项目宣布&#xff0c;Linaro 有限责任公司以白金会员的身份加盟该项目。Linaro是一家为 ARM 架构开发开源软件的协作工程组织&#xff0c;也是全球性机构&#xff0c;其 35 个成员中不乏来自多个行业部门的龙头企业。Linaro…

嵌入式实时操作系统的设计与开发(一)

以一款简单、易学的嵌入式开发平台ARM Mini2440&#xff08;CPU是三星ARM 9系列的ARM S3C2440&#xff09;为例&#xff0c;通过具体代码实现&#xff0c;介绍如何从裸板入手设计简单的轮询系统、前后台系统&#xff0c;以及如何一步一步在ARM Mini2440上编写RTOS内核&#xff…

Spring之配置非自定义Bean

目录 一&#xff1a;概述 二&#xff1a;代码演示 1)配置Druid数据源交由Spring管理 一&#xff1a;概述 以上在xml中配置的Bean都是自己定义的&#xff0c; 例如&#xff1a;UserDaolmpl&#xff0c; UserServicelmpl。但是&#xff0c; 在实际开发中有些 功能类并不是我们…

包装器和绑定器std::bind和std::function的回调技术

回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;我们就说这是回调函数。回调函数不是由该函数的实现方直接调用&#xff0c;而是在…

低代码搭建门店管理之收发货管理系统

随着电商的深入&#xff0c;不少门店都开始采用线上模式进行销售了&#xff0c;并且有的门店线上销售更是比线下销售更加火爆。因此&#xff0c;线上销售务必会涉及到收发货这个步骤。以前线上销售刚兴起的时候收发货只靠人工纸质化登记就能搞定&#xff0c;但是随着线上销售的…

盘点这些年稚晖君的DIY项目,看看他的技术栈有多强

近日&#xff0c;知名极客稚晖君在个人微博发文称自己将离职创业&#xff0c;开启一段新的旅程&#xff0c;“天才少年”将在机器人领域继续发光发热。 自2020年初发布第一个出圈视频《技术宅UP耗时三个月&#xff0c;自制B站最强小电视&#xff01;》以来&#xff0c;稚晖君共…