2、JSON基础知识总结(2)-阿里云开发者社区

开发者社区> hopegrace> 正文

2、JSON基础知识总结(2)

简介: JSON定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript 编程语言的一个子集。
+关注继续查看

JSON定义<?xml:namespace prefix = o />

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript 编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括CC++C#JavaJavaScriptPerlPython等)的习惯,这些特性使JSON成为理想的数据交换格式。

JSONJavaScript对象描述符号(object literal notation)的一个子集。

JSON的结构基于下面两点

1. "名称/"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)

2. 值的有序列表 多数语言中被理解为数组(array)

JSON 语法

AJAXasynchronous javascript and xml(异步javascriptxml),是指一种创建交互式网页应用的网页开发技术)是目前流行web开发技术,它利用客户端脚本向服务器发送请求,而服务器只检索这一请求代替以往检索整个页面的请求,同时服务器编译的数据量也减少了,从而使得服务器响应变得更快了。

这些请求通常检索格式化的xml来响应,然后JavaScript代码分析xml响应来显示结果,使得JavaScript代码复杂化了。这个时候新的事物出现了,JSON(JavaScript Object Notation),它能使JavaScript轻松的读取复杂的数据结构。

特点:

1、简单格式化的数据交换

2、易于人们的读写习惯

3、易于机器的分析和运行

4JavaScript中使用eval()方法可以很方便的读取 JSON数据

5JSON支持的语言ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua. [6]

语法分析:

JSON可以用于封装数据,它是一种类似于C语言家族的语言,所以能很容易被C语言家族的语言分析

1、对象object包含在一对{}//类似定义结构体,有类型,有变量

2、对象的属性member使用[string : value]成对的表示,属性与属性之间用逗号隔开,如:

string : value , string : value

3、数组array包含在一对[]中,如:

[ elements ]

4、元素elements与元素之间用逗号隔开

elements , elements

5、元素值可具有的类型:

string, number, object, array, true, false, null

JSON

{"menu": {

"id": "file",

"value": "File:",

"popup": {

"menuitem": [

{"value": "New", "onclick": "CreateNewDoc()"},

{"value": "Open", "onclick": "OpenDoc()"},

{"value": "Close", "onclick": "CloseDoc()"}

]

}

}

}

XML

<menu id="file" value="File" >

<popup>

<menuitem value="New" onclick="CreateNewDoc()" />

<menuitem value="Open" onclick="OpenDoc()" />

<menuitem value="Close" onclick="CloseDoc()" />

</popup>

</menu>

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。[7]

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

值(value)可以是双引号括起来的字符串(string)、数值(number)truefalsenull、对象(object)或者数组(array)。这些结构可以嵌套。

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。字符串(string)与C或者Java的字符串非常相似。

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

可以使用eval()函数的eval()方法调用JavaScript的编译器把JSON文本转变成对象。因为JSONJavaScript的一个确切的子集,编译器可以正确地解析JSON文本,然后生成一个对象结构。

eval函数的执行效率很高。然而,它能够编译、执行任何的JS程序,所以这样会有安全问题。在来源可信的时候才需要使用eval,这通常是服务器提供基础页面和JSON数据的web应用程序中的情形。而很多情况中,来源是不可信的。特别是永远都不要信任客户端。

如果关心安全的话,那最好是使用JSON解析器了(js脚本中有解析功能的函数)。JSON解析器只认可JSON文本,因此它比较安全。

JSON的字符串转换器(stringifier)则作相反的工作,它将JavaScript数据结构转换为JSON文本。JSON是不支持循环数据结构的,所以注意不能把循环的结构交给字符串转换器。[8]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JSON转换方法总结
将JavaScript的jQuery库中表单转化为JSON对象的方法 Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法。不过,我们可以写一个插件实现
4566 0
C#基础知识之方法重载总结
1.首先解释一下什么是方法重载?    方法重载是指在同一个类中方法同名,参数不同,调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术。 这里所说的参数不同是指以下几种情况: ①  参数的类型不同 ②  参数的个数不同 ③  参数的个数相同且类型不同时,它们的先后顺序不同 需要注...
534 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7586 0
axios基础(一):json-server服务搭建
axios基础(一):json-server服务搭建
10 0
JSP 杂项基础知识
1.JSP九大内置对象 2.建立JSP后,将PageEncoding改为ContentType  pageEncoding是jsp文件自身的编码方式,而contentType是服务器发给客户端时内容的编码 3.
649 0
+关注
582
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载