文章目录
JSON教程
什么是json
- JSON指的是JavaScript对象表示法(Javascript Object Notation)
- JSON是轻量级的文本数据交换格式
- JSON独立于语言
- JSON具有自我描述性,更易理解
*JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。
JSON-转换为JavaScript对象
JSON文本格式在语法上与创建JavaScript对象的代码相同。
由于这种相似性,无需解析器,JavaScript程序能够使用内建的eval()函数,用JSON数据来生成原生的JavaScript对象 。
JSON语法
JSON语法规则
JSON语法是JavaScript对象表示语法的子集
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数字
JSON名称/值对
JSON数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
“firstName”:“John”
这很容易理解,等价于这条JavaScript语句:
firstname=“John”
JSON值
JSON值可以是:
- 数字(整数或者浮点数)
- 字符串(在双引号中)
- 逻辑值(true/false)
- 数组(在花括号中)
- 对象(在花括号中)
- null
JSON对象
JSON对象在花括号中书写:
对象可以包含多个名称/值对:
{“firstName”:“John”,“lastName”:“Doe”}
这一点也容易理解,与这条JavaScript语句等价:
firstName = “John”
lastName = “Doe”
JSON数组
JSON数组在方括号中书写:
数组可包含多个对象:
{
"employee":[
{"firstName":"John","lastName":"Doe"},
{"firstName":"Anna","lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
]
}
JSON使用JavaScript语法
因为JSON使用JavaScript语法,所以无需额外的软件就能处理JavaScript中的JSON。
通过JavaScript,您可以创建一个对象数组,并向这样进行赋值:
var employees = [
{"firstName":"Bill","lastName":"Gates"},
{"firstName":"George","lastName":"Bush"},
{"firstName":"Thomas","lastName":"Carter"}
]
可以像这样访问JavaScript对象数组中的第一项:
employees[0].lastName;
返回的内容是:
Gates
可以像这样修改数据:
employees[0].lastName = "Jobs"
JSON使用
把JSON文本转换为JavaScript对象
JSON最常用的用法之一,是从web服务器上读取JSON数据(作为文件或作为HttpRequest)为JavaScript对象,然后在网页中使用该数据。
JSON实例-来自字符串的对象
创建包含JSON语法的JavaScript字符串:
var txt = '{"employees":['+
'{"firstName":"Bill","lastName":"Gates"},'+
'{"firstName":"George","lastName":"Bush"},'+
'{"firstName":"Thomas","lastName":"Carter"}]}';
由于JSON语法是JavaScript的子集,JavaScript函数eval()可用于将JSON文本转换为JavaScript对象。
eval()函数使用的是JavaScript编译器,可解析JSON文本,然后生成JavaScript对象。必须包文本包围在括号中,这样才能避免语法错误:
var obj = eval("("+txt+")");