JSON数据格式
一、什么是JSON?
JSON 是用于存储和传输数据的一种数据格式。
1 2 3 4 5 | 1、JSON 是纯文本(字符串) 2、JSON 具有 "自我描述性" (人类可读) 3、JSON 具有层级结构(值中存在值) 4、JSON 可通过 JavaScript 进行解析 5、JSON 数据可使用 AJAX 进行传输 |
二、JSON的语法
1 2 3 4 5 6 7 8 9 10 11 12 | 1、数据在 名称/值 对中 2、数据由逗号分隔 3、大括号 {} 保存对象 4、中括号 [] 保存数组,数组可以包含多个对象 5、JSON 规定字符集是UTF-8,字符串必须使用双引号 "" ,Object 的键也必须使用双引号 "" 6、数组或对象的最后一个成员,不能加 逗号 7、JSON键值对的 值 在有些情况下不需要加引号,例如: —— 数字 —— 布尔值 true / false —— null —— {} —— [] |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | { "status" : "0000" , "state" : 200, "message" : "success" , "test" : true , "test2" : null , "data" : { "title" : { "id" : "001" , "name" : "白菜" }, "content" : [ { "id" : "001" , "value" : "你好 白菜" }, { "id" : "002" , "value" : "你好 萝卜" } ] } } |
三、JSON对象
1 | { "name" : "runoob" , "alexa" :10000, "site" : null } |
1 2 3 4 5 6 7 8 9 | JSON 对象使用在大括号{}中书写。 对象可以包含多个 key/value(键/值)对。 key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null )。 key 和 value 中使用冒号(:)分割。 每个 key/value 对使用逗号(,)分割。 |
1 2 3 4 5 6 7 8 9 | myObj = { "name" : "runoob" , "alexa" :10000, "sites" : { "site1" : "www.runoob.com" , "site2" : "m.runoob.com" , "site3" : "c.runoob.com" } } |
四、JSON数组
1 | [ "Google" , "Runoob" , "Taobao" ] |
1 2 3 4 5 | JSON 数组在中括号中书写。 JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null )。 JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined。 |
1 2 3 4 5 | { "name" : "网站" , "num" :3, "sites" :[ "Google" , "Runoob" , "Taobao" ] } |
1 2 3 4 5 6 7 8 9 | myObj = { "name" : "网站" , "num" :3, "sites" : [ { "name" : "Google" , "info" :[ "Android" , "Google 搜索" , "Google 翻译" ] }, { "name" : "Runoob" , "info" :[ "菜鸟教程" , "菜鸟工具" , "菜鸟微信" ] }, { "name" : "Taobao" , "info" :[ "淘宝" , "网购" ] } ] } |
五、JSON对象和JSON数据的嵌套
1、 一个JSON对象中可以嵌套一个或多个JSON数组
2、 一个JSON数组中也可以嵌套一个或多个JSON对象
3、 JSON对象或JSON数组中也可以嵌套一个或多个“自己”
如下是一个完美的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | { "name" : "yinghui" , "age" : 20, "man" : true , "money" : null , "data1" : { "d1" : [1,2,3], "d2" : [2,3,4] }, "data2" : { "d3" : 100, "d4" : 200 }, "data3" : [ { "d5" : 300, "d6" : 400 }, { "d7" : 500, "d8" : 600 } ], "data4" : [ [4,5,6], [ "hello" , "world" ], [ "000" , true , null ] ] } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!