网站首页 > 知识剖析 正文
1. 什么是JSON
- JSON 是 JavaScript Object Notation 简写,是一种轻量级的数据交换格式。
- JSON 是 JS 对象的字符串表示法,它使用纯文本表示一个 JS 对象的信息,本质是一个字符串。
- JSON 与 XML 文档相比较,JSON 格式的数据比 XML 更加易于读取,解析速度更快,而且JSON存储的数据比XML更小;没有XML文档复杂的标签。
- JSON 独立于编程语言和平台之外,支持各种不同的编程语言进行JSON解析。
2. JSON 的表示
JSON 数据支持两种表示,分别是对象表示、数组表示。
2.1 对象表示法
对象表示法是在大括号 { } 中进行书写,一个JSON对象可以包含多个 key/value(键/值)对,key 必须是字符串,value 可以是合法的 JSON 数据类型( 字符串, 数字, 对象, 数组, 布尔值或 null ),key 和 value 中使用冒号 (:) 分割,每个 key/value 对使用逗号 (,) 分割。
/* JSON 对象表示法 */
obj = {
"name":"runoob",
"alexa":10000,
"site":null ,
"address":"henan-xinyang",
"Tel":12345678900
}
2.2 数组表示法
JSON 数组在中括号 [ ] 中书写,JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null),JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined 。
/* 数组表示法 */
arrObj = [ "HeNan", "XinYang", "MyHome" ]
2.3 嵌套表示
JSON数据格式非常灵活,可以在一个对象里嵌套一个数组,也可以在数组里嵌套一个对象或另外一个数组。
/* JSON 的嵌套表示以及访问格式 */
/* 1. 对象属性的值value可以是一个数组 */
obj1 = {
"username":"Tom",
"age":20,
"address":["shanghai","jiading","hongshilu"]
}
/* 数组大小知道前提下:访问读取 "jiading" */
var x = obj1.address[1];
/* 数组大小未知时:for-in 循环读取 */
for (i in obj1.address) {
x += obj1.address[i] + "<br>";
}
/* 2. JSON 对象中数组可以包含另外一个数组,或者另外一个 JSON 对象 */
obj2= {
"username":"网站",
"age":3,
"address": [
{
"province":"shanghai",
"city":[ "jiading", "hongshilu"]
},
{
"province":"henan",
"city":[ "xinyang", "xixian"]
}
]
}
/* for-in 遍历访问每个元素值 */
for (i in obj2.address) {
x += "<h1>" + obj2.address[i].province+ "</h1>";
for (j in obj2.address[i].city) {
x += obj2.address[i].city[j] + "<br/>";
}
}
/* 根据索引访问其中一个 : 如 xixian */
var xx = obj2.address[1].city[1];
/* 3. 对象属性值可以是一个对象 */
obj3 = {
"username":"马云",
"salary":100,
"address":{
"province":"上海",
"city","嘉定红世路"
}
}
var x1 = obj3.address.province + obj3.address["city"];
3. JSON 的转换
- JSON.parse() 将服务端返回的JSON字符串格式的数据转换成JSON对象进行访问,这个字符串必须严格是JSON格式的。
/* 服务端返回的json字符串在前端解析成JSON对象 */
var obj = JSON.parse('{ "username":"老王", "salary":10000, "city":"日本" }');
var x = obj.uesrname;
- JSON.stringify() 用于向服务端提交数据,将JavaScript对象转成符合JSON格式的字符串。
var obj = { "username":"老王", "salary":10000, "city":"日本"};
var jsonStr= JSON.stringify(obj); /* 前端可以将 jsonStr 字符串发送到服务端 */
今天就简单的讲解下JSON相关知识,熟能生巧,只有多练习,多运用,才能发现更多的问题。
更多学习可以关注我的CSDN博客 https://blog.csdn.net/qq_31414433
希望自己接下来能坚持写下去,分享更多!收获更多!
给自己打个气!!!
猜你喜欢
- 2024-11-18 深入了解:JSON.stringify的不可思议之处
- 2024-11-18 你不知道的JavaScript中的5个JSON秘密功能
- 2024-11-18 从业二十年的测试工程师今天给大家分享postman的使用技巧
- 2024-11-18 手把手教你JSON解析完Cube数据,如何输出到Excel
- 2024-11-18 「jQuery-5」 JavaScript对象和json
- 2024-11-18 亲手带你 Debug Fastjson 的安全漏洞
- 2024-11-18 JSON数据格式
- 2024-11-18 你不知道的JSON.stringify神操
- 2024-11-18 JSON如何解析
- 2024-11-18 38.JavaScript:try...catch异常处理
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)