JSON基础介绍与详细用法

JSON基础介绍与详细用法

一、什么是JSON

1、JSON指的是JavaScript对象表示法(JavaScript Object Notation)。

2、JSON是轻量级的文本数据交换格式,比XML更小、更快、更易解析。

3、JSON独立于语言。

4、JSON具有自我描述性、更易理解。

注意:JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。目前非常多的动态编程语言(PHP、.NET)都支持JSON。

二、JSON和XML比较 1、与XML相同之处

1)JSON是纯文本。

2)JSON具有“自我描述性”(人类可读)。

3)JSON具有层级结构(值中存在值)。

4)JSON可通过JavaScript进行解析。

5)JSON数据可使用AJAX进行传输。

2、与XML不同之处

1)没有结束标签。

2)比XML更短。

3)比XML读写的速度更快。

4)能够使用内建的JavaScript eval()方法进行解析。

5)可以使用数组。

6)不使用保留字。

3、为什么使用JSON

对于AJAX应用程序来说,JSON比XML更快更易使用:

使用XML:

读取XML文档。

使用XML DOM来循环遍历文档。

读取值并存储在变量中。

使用JSON

读取JSON字符串。

用eval()处理JSON字符串。

三、JSON语法

JSON语法是JavaScript语法的子集。

1、语法规则

JSON语法是JavaScript对象表示语法的子集。

1)数据在名称/值对中。

2)数据由逗号分隔。

3)大括号保存对象。

4)中括号保存数组。

2、JSON名称/值对

JSON数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"name":"Tom"

3、JSON值

JSON值可以是:

1)数字(整数或浮点数)。

2)字符串(在双引号中)。

3)逻辑值(true或false)。

4)数组(在中括号中)。

5)对象(在大括号中)。

6)null。

4、JSON数字

JSON数字可以是整型或者浮点型:

{"age":30}

5、JSON对象

JSON对象在大括号({})中书写:

对象可以包含多个名称/值对:

{"name":"张三","age":24}

6、JSON数组

JSON数组在中括号中书写:

数组可以包含多个对象:

{   "student":[   {"name":"张三","age":24},   {"name":"李四","age":25}   ] }

在上面的例子中,对象"student"是包含三个对象的数组。每个对象代表一条关于某个学生(name,age)的记录。

7、JSON布尔值

JSON布尔值可以是true或者false:

{"flag":true}

8、JSON null值

JSON可以设置null值:

{"student":null}

9、JSON使用JavaScript语法

因为JSON使用JavaScript语法,所以无需额外的软件就能处理JavaScript中的JSON。

通过JavaScript,你可以创建一个对象数组,并像这样进行赋值:

var student=[   {"name":"张三","age":24},   {"name":"李四","age":25}   ];

可以像这样访问JavaScript对象数组中的第一项(索引从0开始)

student[0].name;

返回的内容是:张三

可以像这样修改数据:

student[0].name="tom";

10、JSON文件

1)JSON文件的文件类型是".json"。

2)JSON文本的MIME类型是"application/json"。

四、JSON对象 1、对象语法

{"name":"张三","age":25}

JSON对象使用在大括号({})中书写。

对象可以包含多个key/value(键/值)对。

key必须是字符串,value可以是合法的JSON数据类型(字符串、数字、对象、数组、布尔值或null)。

key和value中使用冒号(:)分割。

每个key/value对使用逗号(,)分割。

2、访问对象

你可以使用点(.)来访问对象的值。

var  myObj,x; myObj={"name":"张三","age":24}; x=myObj.name;

上面的例子输出值:张三。

你也可以使用中括号([])来访问对象的值。

var  myObj,x; myObj={"name":"张三","age":24}; x=myObj["name"];

上面的例子同样输出值:张三。

3、循环对象

你可以使用for-in来循环对象的属性,使用中括号([])来访问属性的值:

var myObj={"name":"张三","age":24}; for(x in myObj){      document.getElementById("demo").innerHTML += myObj[x]+"<br>"; } 4、嵌套JSON对象

JSON对象中可以包含另外一个JSON对象:

student={       "name":"张三",       "age":24,       "score":{          "C#高级编程":94,          "SQL Server":83,          "Python":75        } }

你可以使用点号(.)或者中括号([])来访问嵌套的JSON对象。

例如:

var x=student.score.C#高级编程; // 或者 var x=student.score["C#高级编程"]; 5、修改JSON对象的值

你可以使用点号(.)来修改JSON对象的值:

student.score.C#高级编程=90;

你也可以使用中括号([])来修改JSON对象的值:

student.score["C#高级编程"]=90;

6、删除JSON对象的属性

我们可以使用delete关键字来删除JSON对象的属性:

delete student.score.C#高级编程;

也可以使用中括号([])来删除JSON对象的属性:

delete student.score["C#高级编程"];

五、JSON数组 1、数组作为JSON对象

["C#","Java","Python"]

JSON数组在中括号中书写。

JSON中数组值必须是合法的JSON数据类型(数字、字符串、对象、数组、布尔值或null)。

JavaScript中,数组值可以是以上的JSON数据类型,也可以是JavaScript的表达式,包括函数、日期、及undefined。

2、JSON对象中的数组

对象属性的值可以是一个数组:

var student={    "name":"张三",    "age":24,    "subject":[".NET","java","python"] }

可以使用索引值来访问数组:

var x=student.subject[0];

3、循环数组

可以使用for-in来访问数组:

for(i  in student.subject)  {      x += student.subject[i]+"<br>"; }

也可以使用for循环

for(int i=0;i<student.subject.length;i++) {    x+=student.subject[i]+"<br>"; } 4、嵌套JSON对象中的数组

JSON对象中数组可以包含另外一个数组,或者另外一个JSON对象:

student={    "name":"张三",    "age":24,    "score":[          {".NET":91},          {"java":85},          {"python":79}     ] }

可以使用for-in来循环访问数组

for(i in student.score) {    x +="<h1>" +student.score[i]+"</h1>"; } 5、修改数组值

可以使用索引值来修改数组值:

student.score[1]=93;

6、删除数组元素

可以使用delete关键字来删除数组元素:

delete  student.score[0];

到此这篇关于JSON基础介绍与详细用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持易知道(ezd.cc)。

推荐阅读

    SQLite使用JSON扩展

    SQLite使用JSON扩展,插件,加载,一、介绍 SQLite3.9.0之后的版本,添加了JSON扩展。在表中可以保存JSON类型。实际上SQLite将JSON类型的

    postgresql中对jsonb的查询及转换

    postgresql中对jsonb的查询及转换,数据,字段,表数据:需要将strata排除,并且过滤info字段中为{}的数据,将jsonb转换成text,替换“,{,}见SQL:sele

    node express返回json数据给前端

    node express返回json数据给前端,上传,格式,请注意,使用res.json()的格式1.前面不能添加 res.writeHead(200, {‘content-type‘: ‘text/

    php中json字符串如何转csv格式

    php中json字符串如何转csv格式,文件,字符串,数据,文件句柄,分隔符,字段,php中json字符串转csv格式的方法:1、创建一个php示例文件;2、将JSON字符

    JSONArray是什么

    JSONArray是什么,方法,对象,用于,文本,类型,字符串,JSONArray是一个有序的值序列,它的外部文本形式是一个用方括号括起来的字符串,用逗号分隔值,内

    json数据格式有哪些

    json数据格式有哪些,数据格式,格式,对象,数组,教程,集合,json有两种数据格式,分别是:1、对象格式,“{"key1":obj,"key2":obj,"key3":obj...}

    Json和Lua table互转的Lua模块

    Json和Lua table互转的Lua模块,分词,字符串,先分词,再解析,少写了语法检查module( "json_to_lua", package.seeall )--##################

    openresty 前端开发入门三之JSON篇

    openresty 前端开发入门三之JSON篇,字符串,转成,这章主要介绍一下,lua怎么返回一个json字符串,怎么把一个table转成json字符串,又怎么把一个j