当前位置: 首页 > news >正文

JSON 小传:从 JavaScript 捡来的“数据网红”

先花一秒钟点个关注,今天的内容保证让你有收获。

JSON:JavaScriptObjectNotation(JavaScript 对象表示法)

JSON 是存储和交换文本信息的语法,类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 易于人阅读和编写。

C、Python、C++、Java、PHP、Go 等编程语言都支持 JSON。

{ "sites": [ { "name":"菜鸟教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } ] }

什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScriptObjectNotation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持 JSON
  • JSON 具有自我描述性,更易理解

JSON - 转换为 JavaScript 对象

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

JSON 工具

  • JSON 格式化工具:https://www.jyshare.com/front-end/53/
  • JSON 转义/去除转义:https://www.jyshare.com/front-end/7683/
  • JSON 在线解析工具:https://www.jyshare.com/front-end/7438/
  • JSON 差异对比工具:https://www.jyshare.com/front-end/9557/

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有"自我描述性"(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

JSON 语法规则

JSON 语法是 JavaScript 对象表示语法的子集。

  • 数据在名称/值对中
  • 数据由逗号 , 分隔
  • 使用斜杆 \ 来转义字符
  • 大括号 {} 保存对象
  • 中括号 [] 保存数组,数组可以包含多个对象

JSON 的两种结构:

1、对象:大括号 {} 保存的对象是一个无序的名称/值对集合。一个对象以左括号 { 开始, 右括号 } 结束。每个"键"后跟一个冒号 :,名称/值对使用逗号 , 分隔。

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

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array),它们是可以嵌套。

JSON 名称/值对

JSON 数据的书写格式是:

key : value

JSON 值

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

JSON 数字

JSON 数字可以是整型或者浮点型:

{ "age":30 }

JSON 对象

JSON 对象在大括号 {} 中书写:

{key1 : value1, key2 : value2, ... keyN : valueN }

JSON 数组

JSON 数组在中括号 [] 中书写:

数组可包含多个对象:

[ { key1 : value1-1 , key2:value1-2 }, { key1 : value2-1 , key2:value2-2 }, { key1 : value3-1 , key2:value3-2 }, ... { key1 : valueN-1 , key2:valueN-2 }, ]

JSON 布尔值

JSON 布尔值可以是 true 或者 false:

{ "a:true }

JSON null

JSON 可以设置 null 值:

{ "b":null }

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:

var s = [ { "name":"a" , "url":"www.qqqqq.com" }, { "name":"b" , "url":"www.wwwww.com" }, { "name":"c" , "url":"www.xxxxx.com" } ];

可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):

s[0].name;

JSON 文件

  • JSON 文件的文件类型是 .json
  • JSON 文本的 MIME 类型是 application/json

JSON vs XML

JSON 和 XML 都用于接收 web 服务端的数据。

JSON 和 XML在写法上有所不同,如下所示:

{ "s" :[ { "name":"a" , "url":"www.qqqqq.com" }, { "name":"b" , "url":"www.wwwww.com" }, { "name":"c" , "url":"www.xxxxx.com" } ] }
<sites> <site> <name>a</name> <url>www..com</url> </site> <site> <name>b</name> <url>www..com</url> </site> <site> <name>c</name> <url>www..com</url> </site> </sites>

JSON 与 XML 的相同之处:

  • JSON 和 XML 数据都是 "自我描述" ,都易于理解。
  • JSON 和 XML 数据都是有层次的结构
  • JSON 和 XML 数据可以被大多数编程语言使用

JSON 与 XML 的不同之处:

  • JSON 不需要结束标签
  • JSON 更加简短
  • JSON 读写速度更快
  • JSON 可以使用数组

谢谢你的关注!记得常来看看,更多实用干货等着你。

http://www.jsqmd.com/news/736616/

相关文章:

  • 必知必会:大模型对齐数据构造与PPO算法详解
  • 2026五一出行运动扭伤,五种常用止痛药怎么选?
  • 2026变频互感器测试仪技术解析:互感器励磁特性综合测试仪/互感器特性测试仪/充气式试验变压器/变压器综合特性测试仪/选择指南 - 优质品牌商家
  • Android蓝牙开发深度解析:从技术基础到面试准备
  • 如何快速掌握AssetRipper:Unity资源逆向工程的完整指南
  • CMOS与双极型运算放大器特性对比与应用设计
  • 收藏!2026年大模型红利爆发|程序员+小白必看,阿里跳槽案例+薪资表
  • 2026年郑州博亚财务服务有限公司性价比高吗? - myqiye
  • Phi-3-mini-4k-instruct-gguf部署教程:多模型并行服务配置与端口路由策略
  • 必知必会:奖励模型训练与PPO稳定训练方法详解
  • NVIDIA G-Assist插件开发实战:从Twitch集成到性能优化
  • Keras Hub:一行代码加载预训练模型,加速深度学习开发与迁移学习
  • Qwen2.5-VL-7B-InstructGPU优化:梯度检查点+FlashAttention-2启用指南
  • 洛阳博亚财务口碑好不好?值得信赖不? - myqiye
  • IDE Eval Resetter:JetBrains IDE试用期管理的终极解决方案
  • GLM-5.1在Agent场景的性价比拆解:94%的Opus水准,价格只要1/3
  • LM保姆级使用手册:从零输入提示词到高清人像生成的完整步骤详解
  • 3分钟终极指南:用KMS智能激活脚本永久激活Windows和Office
  • 中山市厨凰电器线下销售地点在哪 - mypinpai
  • 大数据缺失值处理:bigMICE分布式解决方案解析
  • 06. 调用链如何关联业务入口和测试用例
  • 第16章:企业级AI能力建设——从单点实践到规模化能力
  • 告别通信中断!手把手教你用C#实现PLC心跳包,打造坚如磐石的工业上位机
  • AI时代,2026年程序员何去何从?
  • Python RSS内容处理框架feedclaw:构建个性化信息聚合流水线
  • 多模态AI技术助力听障沟通:HI-TransPA系统解析
  • 工业语言:06 HMI 哪家强?四大品牌真实对比
  • Fairseq-Dense-13B-Janeway步骤详解:首次加载115秒延迟成因与后续常驻显存机制说明
  • 凯祥耐磨材料性价比高吗,推荐哪家? - mypinpai
  • 索尼 WH - 1000XM6 与 Bose QuietComfort Ultra 2 大比拼:舒适度、音质等谁更胜一筹?