图:道格拉斯·克罗克福特
JSANE 支持哪些平台?
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
JSON 简要历史
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写, 可以在多种语言之间进行数据交换 [5] 。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。
JSON JSON 语法
JSON JSON 语法规则
3.2.3 字符串与C或者Java的字符串非常相似。字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
JSON JSON 与 JSANE 支持哪些平台? JS 对象的关系
JSON JSON 和 JS 对象互转
JSON 常用类型
对象:对象在 JS 中是使用花括号包裹 <> 起来的内容,数据结构为
数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", . ] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。
JSON 基础示例
简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在 PHP 中,可以将 JSON 还原为数组或者一个基本对象。在用到AJAX时,如果需要用到数组传值,这时就需要用JSON将数组转化为字符串。 [3]
JSON是什么?
图:道格拉斯·克罗克福特
2005-2006 年,JSON 正式成为主流的数据格式,雅虎、谷歌等知名网站开始广泛使用 JSON 格式。
2013 年,ECMA International(欧洲计算机制造商协会)制定了 JSON JSANE 支持哪些平台? 的语法标准——ECMA-404。
经过 20 年左右的发展,JSON 已经替代了 XML,成为了 Web 开发中首选的数据交换格式。
为什么要使用 JSON?
JSON 并不是唯一能够实现在互联网中传输数据的方式,除此之外还有一种 XML 格式。JSON 和 XML 能够执行许多相同的任务,那么我们为什么要使用 JSON,而不是 XML 呢?
之所以使用 JSON,最主要的原因是 JavaScript。众所周知,JavaScript 是 Web 开发中不可或缺的技术之一,而 JSON 是基于 JavaScript 的一个子集,JavaScript 默认就支持 JSON,而且只要您学会了 JavaScript,就可以轻松地使用 JSON,不需要学习额外的知识。
另一个原因是 JSON 比 XML 的可读性更高,而且 JSON 更加简洁,更容易理解。
- 结构简单、紧凑:与 XML 相比,JSON JSANE 支持哪些平台? JSANE 支持哪些平台? 遵循简单、紧凑的风格,有利于程序员编辑和阅读,而 XML 相对比较复杂;
- 更快:JSON 的解析速度比 XML 更快(因为 XML 与 HTML 很像,在解析大型 XML 文件时需要消耗额外的内存),存储同样的数据,JSON 格式所占的存储空间更小;
- 可读性高:JSON 的结构有利于程序员阅读。
JSON 的不足
- 只有一种数字类型:JSON 中只支持 IEEE-754 双精度浮点格式,因此您无法使用 JSON 来存储许多编程语言中多样化的数字类型;
- 没有日期类型:在 JSON 中您只能通过日期的字符串(例如:1970-01-01)或者时间戳(例如:1632366361)来表示日期;
- 没有注释:在 JSON 中无法添加注释;
- 冗长:虽然 JSON 比 XML 更加简洁,但它并不是最简洁的数据交换格式,对于数据量庞大或用途特殊的服务,您需要使用更加高效的数据格式。
JSON 应该如何存储?
JSON 数据可以存储在 .json 格式的文件中(与 .txt 格式类似,都属于纯文本文件),也可以将 JSON 数据以字符串的形式存储在数据库、Cookie、Session 中。
要使用存储好的 JSON 数据也非常简单,不同的编程语言中提供了不同的方法来检索和解析 JSON 数据,例如 JavaScript 中的 JSON.parse() 和 JSON.stringify()、PHP 中的 json_decode() 和 json_encode()JSANE 支持哪些平台? 。
什么时候会使用 JSON
1) 定义接口
- 使用 Ajax 异步加载的数据;
- RPC 远程调用;
- 前后端分离,后端返回的数据;
- 开发 API,例如百度、高德的一些开放接口。
2) 序列化
我们可以将这些数据保存到数据库中,也可以保存到一个文件中,这个将内存中数据保存起来的过程称为序列化。序列化在 Python 中称为 pickling,在其他语言中也被称为 serialization、marshalling、flattening 等等,都是一个意思。
通常情况下,序列化是将程序中的对象直接转换为可保存或者可传输的数据,但这样会保存对象的类型信息,无法做到跨语言使用,例如我们使用 Python 将数据序列化到硬盘,然后使用 Java 来读取这份数据,这时由于不同编程语言的数据类型不同,就会造成读取失败。如果在序列化之前,先将对象信息转换为 JSON 格式,则不会出现此类问题。
3) 生成 Token
Token 的形式多种多样,JSON、字符串、数字等都可以用来生成 Token,JSON 格式的 Token 最有代表性的是 JWT(JSON Web Tokens)。
随着技术的发展,分布式 Web 应用越来越普及,通过 Session 管理用户登录状态的成本越来越高,因此慢慢发展为使用 Token 做登录身份校验,然后通过 Token 去取 Redis 中缓存的用户信息。随着之后 JWT 的出现,校验方式变得更加简单便捷,无需再通过 Redis JSANE 支持哪些平台? 缓存,而是直接根据 Token 读取保存的用户信息。
4) 配置文件
提示:虽然 JSON 可以用来定义配置文件,但由于 JSON 中不能添加注释,使得配置文件的可读性较差。
JSON 是一种轻量级的数据交换格式,它是基于 JavaScript 的一个子集,采用完全独立于编程语言的格式来表示数据,可以跨语言、跨平台使用。简洁清晰的层次结构使得 JSON 逐渐替代了 XML,成为了最理想的数据交换格式,广泛应用于 Web 开发领域。
关注公众号「 站长严长生 」,在手机上阅读所有教程,随时随地都能学习。本公众号由站长亲自运营,长期更新,坚持原创,专注于分享创业故事+学习历程+工作记录+生活日常+编程资料。
微信扫码关注公众号
Copyright ©2012-2022 biancheng.net, 冀ICP备2022013920号, 冀公网安备13110202001352号
JSANE 支持哪些平台?
JSON是一种轻量级的、用于数据交换的数据格式(A Lightweight Data-Interchange Format)。JSON的全称为JavaScript Object Notation。因为JSON数据格式灵活,且易于人们阅读,也易于程序解析和生成,JSON被广泛的用于大型应用程序之中。
2 基础知识
JSON格式的数据由两种数据结构组成。第一种是名称/值对(JSANE 支持哪些平台? Name/Value Pair)。或者换句话说,第一种数据结构是一对数据;它们由名称和值组成。第二种数据结构是一组有序的值(An Ordered List of Values)。对于编程语言而言,第二种结构非常类似于数组、链表或者序列的概念。
我们将从一个简单的例子来介绍JSON格式的基础知识。一个JSON字符串由""(右花括号)结束。在这对花括号之间可以包含一个或者多个名称/值对。名称必须是一个字符串,而值可以是一个字符串、一个数字、true/false、null、对象(object)、或者数组(Array)。其中,对象就是以""(右花括号)JSANE 支持哪些平台? 结束、且其中可包含一个或者多个名称/值的对象。所以,我们可以看出,JSON字符串本身就是一个对象。JSON数组则是一组有序的值。
有一些特殊字符需要经过转换之后才能在JSON字符串中正常使用,我们称这些特殊字符为转义字符(Escaped Characters)。JSON的转义字符如下所示。
使用 JSANE 支持哪些平台? Amazon DynamoDB 中的 JSON SupportAWS SDK for .NET
在上述示例中, Document 类的 ToJson 方法将表中的项目转换为 JSON 格式的字符串。项目通过 Table 类的 GetItem 方法检索。在此示例中,要确定要获取的项目, GetItem 方法使用 hash-and-range 目标项目的主键。要确定从哪个表中获取物品, LoadTable 的方法 Table 类使用的实例 AmazonDynamoDBClient 类以及 DynamoDB 中目标表的名称。
将 JSON 格式数据插入 DynamoDB 表
以下示例演示了如何使用 JSON 格式将项目插入到 DynamoDB 表:
在上述示例中, FromJson JSANE 支持哪些平台? 类的 Document 方法将 JSON 格式的字符串转换为项目。项目通过 PutItem 类的 Table 方法插入表中,该方法使用包含项目的 Document 类的实例。要确定要将项目插入的表格, LoadTable 的方法 Table 类被调用,指定实例 AmazonDynamoDBClient 类以及 DynamoDB 中目标表的名称。
DynamoDB 数据类型转换为 JSON
每当你打电话给 ToJson 的方法 Document 类,然后在生成的 JSON 数据上你调用 FromJson JSANE 支持哪些平台? 将 JSON 数据转换回实例的方法 Document 类中,某些 DynamoDB 数据类型将不会按预期的方式进行转换。具体来说:
DynamoDB 集合( SS 、 NS , 和 BS 类型)将转换为 JSON 数组。
DynamoDB 二进制标量和集合( B 和 BS 类型)将转换为 base64 编码的 JSON 字符串或字符串列表。
在此情况下,您必须调用 DecodeBase64Attributes 类的 Document 方法,使用正确的二进制表示形式替换 base64 编码的 JSON 数据。以下示例使用正确的二进制表示形式,在 Document 类的实例中,替换 base64 编码的名为 Picture 的二进制标量项目属性。此示例还在 Document 类的相同实例中,为名为 RelatedPictures 的 base64 编码二进制集项目属性执行相同的操作。