当前位置: 代码网 > it编程>编程语言>Javascript > JSON基础介绍与详细用法

JSON基础介绍与详细用法

2024年05月19日 Javascript 我要评论
一、什么是json1、json指的是javascript对象表示法(javascript object notation)。2、json是轻量级的文本数据交换格式,比xml更小、更快、更易解析。3、j

一、什么是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基础介绍与详细用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com