代码网 logo
AI

JSON 详解

小开开2021-03-22 09:19:50460

🍭 JSON 详解


1. 什么是 JSON

  • JSON 指的是 JavaScript 对象表示法JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言:JSON 使用 Javascript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持 JSON
  • JSON 具有自我描述性,更易理解

2. JSON 与 JavaScript

📜 JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

html 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CS-Wiki</title>
</head>
<body>
<h2>JavaScript 创建 JSON 对象</h2>
<p>
网站名称: <span id="jname"></span><br /> 
网站地址: <span id="jurl"></span><br /> 
网站 slogan: <span id="jslogan"></span><br /> 
</p>
<script>
var JSONObject= {
	"name":"CS-Wiki",
	"url":"https://gitee.com/veal98/CS-Wiki", 
	"slogan":"🎉 用清晰的脉络总结 Java 和 AI 相关的知识点,便于构建完善的知识体系"
};
document.getElementById("jname").innerHTML=JSONObject.name 
document.getElementById("jurl").innerHTML=JSONObject.url 
document.getElementById("jslogan").innerHTML=JSONObject.slogan 
</script>

</body>
</html>

3. JSON 语法规则

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

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组

① JSON 名称/值对

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

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

json 复制代码
"name" : "菜鸟教程"

这很容易理解,等价于这条 JavaScript 语句:

json 复制代码
name = "菜鸟教程"

② JSON 值

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

③ JSON 数字

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

json 复制代码
{ "age":30 }

④ JSON 对象

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

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

json 复制代码
{ 
    "name":"hello" , 
    "url":"www.baidu.com" 
}

这一点也容易理解,与这条 JavaScript 语句等价:

json 复制代码
{ "name":"hello" , "url":"www.baidu.com" }

⑤ JSON 数组

JSON 数组在中括号中书写:

数组可包含多个对象:

json 复制代码
{ 
    "sites": [ 
        { 
            "name":"hello" , 
            "url":"www.baidu.com" 
        },  
        { 
            "name":"google" , 
         	"url":"www.google.com" 
        },  
        { 
            "name":"微博" , 
         	"url":"www.weibo.com" 
        } 
    ]
}

在上面的例子中,对象 "sites" 是包含三个对象的数组。

⑥ JSON 布尔值

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

json 复制代码
{ "flag":true }

⑦ JSON null

JSON 可以设置 null 值:

json 复制代码
{ "runoob":null }

⑧ JSON 使用 JavaScript 语法

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

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

json 复制代码
var sites = [    
    { 
        "name":"hello" , 
     	"url":"www.baidu.com" 
    },     
    { 
        "name":"google" , 
        "url":"www.google.com" 
    },     
    { 
        "name":"微博" , 
        "url":"www.weibo.com" 
    } 
];

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

json 复制代码
sites[0].name;

返回的内容是:baidu

可以像这样修改数据:

json 复制代码
sites[0].name="hello";

4. JSON 和 XML

xml:

xml 复制代码
<sites>
  <site>
    <name>菜鸟教程</name> <url>www.runoob.com</url>
  </site>
  <site>
    <name>google</name> <url>www.google.com</url>
  </site>
  <site>
    <name>微博</na

广告