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"}
}
2.2 JSON 值¶
- 值(value)可以是双引号括起来的字符串(string)、数值(number)、
true
、false
、null
、对象(object)或者数组(array)。这些结构可以嵌套。 -
JSON 值可以是:
-
数字(整数或浮点数)
-
字符串(在双引号中)
-
逻辑值(true 或 false)
-
数组(在中括号中)
-
对象(在大括号中)
-
null
-
- 数组是值(value)的有序集合。一个数组以
[
左中括号 开始,]
右中括号 结束。值之间使用,
逗号 分隔。
[ "列表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"
}
]
}
}
雨果学院 雨果在线 雨果笔记