Json是什么
-
JSON 或者 JavaScript 对象表示法是一种轻量级的基于文本的开放标准,被设计用于可读的数据交换。约定使用 JSON 的程序包括 C,C++,Java,Python,Perl 等等。
-
JSON 是 JavaScript Object Notation 的缩写。
这个格式由 Douglas Crockford 提出。
被设计用于可读的数据交换。
它是从 JavaScript 脚本语言中演变而来。
文件名扩展是 .json。
-
JSON 的网络媒体类型是 application/json。
统一标示符类型(Uniform Type Identifier)是 public.json
-
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
-
JSON是轻量级的文本数据交换格式
-
JSON 独立于语言 *
-
JSON 具有自我描述性,更易理解
Json语法
1. Json包括的内容
数据使用名/值对表示。
使用大括号保存对象,每个名称后面跟着一个 ‘:’(冒号),名/值对使用 ,(逗号)分割。
使用方括号保存数组,数组值使用 ,(逗号)分割。
2. Json的数据结构
名/值对集合: 这一数据结构由不同的编程语言支持。
有序的值列表: 包括数组,列表,向量或序列等等。
3. Json的语法规则
-
数据在名称/值对中
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
“firstName” : “John”
-
数据由逗号分隔
{ “firstName”:“John” , “lastName”:“Doe” }
-
花括号保存对象
{ “firstName”:“John” , “lastName”:“Doe” }
-
方括号保存数组
{
“employees”: [
{ “firstName”:“John” , “lastName”:“Doe” },
{ “firstName”:“Anna” , “lastName”:“Smith” },
{ “firstName”:“Peter” , “lastName”:“Jones” }
]
}
-
JSON 布尔值
{ “flag”:true }
{ “flag”:false}
-
JSON null
{ “w3cschool”:null }
4. Json的数据类型
-
数字类型
JavaScript 中的双精度浮点型格式,取决于实现。
不能使用八进制和十六进制格式。
在数字中不能使用 NaN 和 Infinity。
类型 | 描述 |
---|
整形 | 数字1-9,0和正负数 |
分数 | 分数,比如 .3,.9 |
指数 | 比如 e,e+,e-,E,E+,E- |
var obj = {marks: 97}
-
字符串型
零个或多个双引号包裹的 Unicode 字符以及反斜杠转义序列。
字符就是只有一个字符的字符串,长度为 1。
类型 | 描述 |
---|
" | 双引号 |
\ | 反斜线 |
/ | 斜线 |
b | 退格符 |
f | 换页符 |
n | 换行符 |
r | 回车符 |
t | 水平制表符 |
u | 四位十六进制数字 |
var obj = {name: ‘Amit’}
-
布尔型
它包含 true 和 false 两个值。
var obj = {name: ‘Amit’, marks: 97, distinction: true}
-
数组
它是一个有序的值集合。
使用方括号闭合,这意味着数组以 [ 开始,以 ] 结尾。
值使用 ,(逗号)分割。
数组索引可以以 0 或 1 开始。
当键名是连续的整数时应该使用数组。
{
"books": [
{ "language":"Java" , "edition":"second" },
{ "language":"C++" , "lastName":"fifth" },
{ "language":"C" , "lastName":"third" }
]
}
-
对象
它是一个无序的名/值对集合。
对象使用大括号闭合,以 ‘{’ 开始,以 ‘}’ 结尾。
每个名称后面都跟随一个 ‘:’(冒号),名/值对使用 ,(逗号)分割。
键名必须是字符串,并且不能同名。
当键名是任意字符串时应该使用对象。
{ string : value, …}
{
“id”: “011A”,
“language”: “JAVA”,
“price”: 500,
}
-
空格
可以在任意一对符号之间插入。可以添加用来让代码更可读。
下面的例子展示了使用空格和不使用空格的声明:
{string:" ",…}
var i= " sachin";
var j = " saurav"
-
null
意味着空类型。
var i = null;
var i = null;
if(i==1) {
document.write("<h1>value is 1</h1>");
} else {
document.write("<h1>value is null</h1>");
}
Json对象的创建和访问
-
创建一个简单的Json对象
var JSONObj = new Object();//创建新对象
var JSONObj = {};//创建空对象
var JSONObj = { "bookname ":“VB BLACK BOOK”, “price”:500 };
-
Json对象的访问,和C的结构体访问方式类似
<html>
<head>
<title>在JavaScript中使用JSON创建对象(w3cschool.cn)</title>
<script language="javascript" >
var JSONObj = { "name" : "编程狮(w3cschool.cn)", "time" : 2020 };
document.write("<h1>JSON和JavaScript的例子</h1>");
document.write("<h3>网站的名字="+JSONObj.name+"</h3>");
document.write("<h3>时间="+JSONObj.time+"</h3>");
document.write("<h3>时间="+JSONObj["time"]+"</h3>");
</script>
</head>
<body>
</body>
</html>
-
创建数组对象
var books = {
"Pascal" : [
{ "Name" : "Pascal Made Simple", "price" : 700 },
{ "Name" : "Guide to Pascal", "price" : 400 }
],
"Scala" : [
{ "Name" : "Scala for the Impatient", "price" : 1000 },
{ "Name" : "Scala in Depth", "price" : 1300 }
]
}
-
嵌套 JSON 对象
myObj = {
"name":"w3cschool",
"alexa":10000,
"sites": {
"site1":"www.w3cschool.cn",
"site2":"m.w3cschool.cn",
"site3":"c.w3cschool.cn"
}
}
嵌套Json对象的访问
x = myObj.sites.site1;
// 或者
x = myObj.sites[“site1”];
嵌套Json对象值的修改
x = myObj.sites.site1 = “www.baidu.com”;
// 或者
x = myObj.sites[“site1”] = “www.baidu.com”;
-
JSON 对象和字符串的区别
JSON 对象
var str2 = { “name”: “asan”, “sex”: “man” };
JSON 字符串
var str1 = ‘{ “name”: “deyuyi”, “sex”: “man” }’;
参阅:https://www.w3cschool.cn/json/9l4f1h7u.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)