现如今 Restful API 越来越流行,而 *** ON 和 XML 基本上是两种主流格式用来交换数据, *** ON和 XML 都在 Web上有完善的开放标准(RFC 7159,RFC 4825),本文将带着大家来了解下这个两种数据格式。
*** ON 是一种用于在多个应用程序之间共享数据的通信格式。 *** ON代表 JavaScript Object Notation。它基本上是键值对的 *** 。
官网:http://www.json.org/
在线校验 *** ON结构的网站:https://jsonformatter.curiousconcept.com/
*** ON 有两种数据结构:
Map,也称为对象;{….} Array;[……]也就是说所有的 *** ON 对象都是要以这些形式表示;
简单的说就是 Java 中的 Map,名称-值对的形式给出,名称和值之间用 “:” 隔开,两个Map之间用“,”隔开,一般表示形式如下:
{'key1':'value1'%2c'key2':'value2'}
下面的 Object 有 3 个键值对
{ "firstName" : "Vijay"%2c "lastName" : "Gupta"%2c "gender" : "Male" }
Map 是一个无序的“‘名称/值’对” *** 。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“%2c”(逗号)分隔。
就是普通意义上的数组,一般形式如下:
['arr1'%2c'arr2'%2c'arr3'];
下面的数组有 3 个 *** ON 对象,每个对象有 3 个键值对
[ {"name" : "Potato"%2c"stock" : "10"%2c "unit" : "kg"}%2c {"name" : "Tomato"%2c"stock" : "32"%2c "unit" : "kg"}%2c {"name" : "Onion"%2c"stock" : "27"%2c "unit" : "kg"} ]
数组是值(value)的有序 *** 。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“%2c”(逗号)分隔。
图中的值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
字符串(string)是由双引号包围的任意数量 Unicode 字符的 *** ,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
字符串(string)与C或者Java的字符串非常相似。
数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
*** ON对象也可以嵌套:
{ "id": "0001"%2c "type": "donut"%2c "name": "Cake"%2c "image": { "url": "images/0001.jpg"%2c "width": 200%2c "height": 200}%2c "thumbnail": {"url": "images/thumbnails/0001.jpg"%2c "width": 32%2c "height": 32} }
XML 是一种标记语言,也是一种用于在多个应用程序之间共享数据的通信格式,而不是 HTML,它更侧重于数据表示。
XML 被设计用来描述数据并关注数据是什么
XML 标签不需要预先定义。在 XML 中,标签和文档结构由其作者定义。通常,XML标签是自解释的,并描述它们之间的内容。
例如:
<section> <title>BOOK</title> <signing> <author name="author-1"/> <book title="book1" price="$11"/> </signing> <signing> <author name="author-2"/> <book title="book2" price="$22"/> </signing> </section>
在线校验XML结构的网站:https://codebeautify.org/xmlvalidator
某些字符不能用作 XML 标记内的内容。因此,我们用特定文本(称为实体引用)替换这些字符,以便从字面上解析这些字符
在 XML 中有 5 个预定义的实体引用:
在线格式互转: http://www.utilities-online.info/xmltojson/#.XFE-pegzaUk
XML格式:
<person> <name>zuozewei</name> <age>20</age> </person>
*** ON格式:
{ "name":"zuozewei"%2c "age":20 }
XML格式:
<section> <title>BOOK</title> <signing> <author name="author-1"/> <book title="book1" price="$11"/> </signing> <signing> <author name="author-2"/> <book title="book2" price="$22"/> </signing> </section>
*** ON格式:
{ "section": { "title": "BOOK"%2c "signing": [ { "author": { "-name": "author-1" }%2c "book": { "-title": "book1"%2c "-price": "$11" } }%2c { "author": { "-name": "author-2" }%2c "book": { "-title": "book2"%2c "-price": "$22" } } ] } }
XML是一种数据格式,同时它也是一种语言。它具有许多强大的功能,使其不仅仅是简单的数据交换数据格式。例如 XPath,属性和命名空间,XML 模式和 XSLT 等。所有这些功能都是 XML 流行的主要原因。
*** ON 并不是为了拥有这样的功能而设计的,即使它们中的一些现在正试图在 *** ON 中找到它们的位置,例如 *** ONPath。
简而言之,XML 的目的是文档标记。每当文档标记和元数据是数据的重要组成部分并且不能被删除时,总是更喜欢使用 XML。
*** ON 的目的是结构化数据交换。它通过直接表示对象,数组,数字,字符串和布尔值来实现此目的。如果不要求元数据和文档标记,始终使用 *** ON。
据TechCrunch报道,红十字国际委员会(ICRC)最近遭到网络攻击,超过51.5万名“高危人群”的数据被泄露,这很可能是国家支持的黑客所为。在周三发布的更新中,红十字国际委员会证实,最初的入侵可以追溯到2021年11月9日,即在1月18日攻击被披露之前的两个月,并补充说,其分析表明,入侵是对其...
美国总统拜登警告美国企业主管立即加强其公司的网络防御,准备应对潜在的来自俄罗斯的网络攻击,以报复使该国经济陷入瘫痪的制裁。拜登在一份白宫声明中写道,”根据不断变化的情报,政府正在重申以前的警告,即俄罗斯可能对美国进行恶意的网络攻击。” “我的政府将继续使用一切工具来阻止、破坏,并在必要时回应针对关...
澳大利亚信息专员发现,Clearview AI 在许多方面违反了澳大利亚的隐私法。在此前的双边调查中发现,该公司的面部识别工具未经同意并以不公平的方式收集澳大利亚人的敏感信息。由澳大利亚信息专员办公室(OAIC)和英国信息专员办公室(ICO)进行的调查发现,Clearview AI 的面部识别工具不...
为应对近年来不断增长的勒索软件攻击,越来越多的企业 IT 高管和员工,已经收到了专业人士的相关安全建议。Hitachi ID 刚刚公布了针对北美企业的最新调查报告,其中强调了内外部的 IT 安全措施需求。可知有 65% 的受访者表示,他们有被黑客接近,试图引诱他们参与谋划针对自家企业的勒索软件攻击。...
一项新的调查显示,70%成年人仍在使用同一个密码做一件以上事情。在对1041名18岁或以上美国居民的调查中,PCMag发现,25%的人承认有时会重复使用同一个密码,24%的人说他们大部分时间都这样做,而21%的人承认一直这样做。 重复使用密码是黑客喜欢的事情,尤其是许多网站和服务使用电子邮件地址作为...
SushiSwap 首席技术官表示,该公司的 MISO 平台近日受到了软件供应链的攻击。SushiSwap 是一个社区驱动的去中心化金融(DeFi)平台,方便用户交换、赚取、借出、借用和利用加密货币资产。今年早些时候,Sushi 的最新产品 Minimal Initial SushiSwap Off...