跳转至

json学习

数据组织格式与数据交换格式

1. xml

xml可扩展标记语言

<age>29</age>
<student>
      <name>张三</name>
      <age>29</age>
</student>

html 超文本标记语言

<html>内容</html>

1. json介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript语言 的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

2. json语法

2.1 语法规则

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

{"名称":"值"}

{ 
  "名称1":"值1", 
  "名称2":29
  “名称3:true,
  "名称4": {"key":"value"}
}

image-20200609134726421

2.2 JSON 值

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

    • 数字(整数或浮点数)

    • 字符串(在双引号中)

    • 逻辑值(true 或 false)

    • 数组(在中括号中)

    • 对象(在大括号中)

    • null

image-20200609135011436

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

img

[ "列表1","列表2" ]
[ 25, 24 ]
[ {"key":"value"}, {"key":"value"}]

3 JSON 对象

3.1 对象语法

实例

{ "name":"yuguoxy", "alexa":10000, "site":null }

3.2 访问对象值

let myObj, x;
myObj = { "name":"yuguoxy", "alexa":10000, "site":null };
x = myObj.name;

3.3 循环对象

let myObj = { "name":"yuguoxy", "alexa":10000, "site":null };
for (x in myObj) {
    document.getElementById("demo").innerHTML += x + "<br>";
}

3.4 嵌套 JSON 对象

myObj = {
    "name":"runoob",
    "alexa":10000,
    "sites": {
        "site1":"www.yuguoxy.com",
        "site2":"m.yuguoxy.com",
        "site3":"c.yuguoxy.com"
    }
}

3.5 修改值

myObj.sites.site1 = "www.google.com";

4. json作用与解析

4.1 JSON.parse()

JSON 通常用于与服务端交换数据。

在接收服务器数据时一般是字符串。

我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。

语法

JSON.parse(text)

参数说明:

  • **text:**必需, 一个有效的 JSON 字符串。
  • reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

json字符串转对象

//json格式字符串
let jsonstr = '{ "name":"yuguoxy", "alexa":10000, "site":"www.yuguoxy.com" }';
let obj = JSON.parse(jsonstr);
obj.name;

4.2 JSON.stringify()

JSON 通常用于与服务端交换数据。

在向服务器发送数据时一般是字符串。

我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

JavaScript 对象转换

例如我们向服务器发送以下数据:

var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};

我们使用 JSON.stringify() 方法处理以上数据,将其转换为字符串:

var myJSON = JSON.stringify(obj);

myJSON 为字符串。

我们可以将 myJSON 发送到服务器:

实例

var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;

5. JSON 使用

{
  "sites": {
    "site": [
      {
        "id": "1",
        "name": "雨果学院",
        "url": "www.yuguoxy.com"
      },
      {
        "id": "2",
        "name": "雨果在线",
        "url": "www.yuguoxy.cn"
      },
      {
        "id": "3",
        "name": "雨果笔记",
        "url": "it.warmtel.com"
      }
    ]
  }
}

雨果学院 雨果在线 雨果笔记