JSON 入门:一次讲清对象、数组与解析

举报
yd_296515785 发表于 2026/10/30 07:44:19 2026/10/30
【摘要】 接口返回的数据、配置文件、前后端约定的消息体,很多都是 JSON。它看起来像带花括号的文本,读起来却很直观。本文讲清对象、数组和解析。 一、JSON 是什么JSON 是一种轻量数据交换格式,本质是一段文本,而不是某个语言里的对象。正因为它是文本,才可以在不同语言、不同系统之间传递。解析后,它会变成当前语言对应的数据结构;解析前,它只是一串字符。它只有几种基本值:字符串、数字、布尔值、空值,以...

接口返回的数据、配置文件、前后端约定的消息体,很多都是 JSON。它看起来像带花括号的文本,读起来却很直观。本文讲清对象、数组和解析。

一、JSON 是什么

JSON 是一种轻量数据交换格式,本质是一段文本,而不是某个语言里的对象。正因为它是文本,才可以在不同语言、不同系统之间传递。解析后,它会变成当前语言对应的数据结构;解析前,它只是一串字符。

它只有几种基本值:字符串、数字、布尔值、空值,以及由它们组成的对象和数组。字符串用双引号,数字不加引号,true 和 false 全小写,空值写作 null。

二、对象:用键名说清楚一件事

对象用花括号表示,里面是一组键值对,键一定是字符串:

{"name": "李明", "age": 28, "vip": true, "email": null}

读对象先想键名代表什么。email 为 null,通常表示字段存在但目前没有值;字段直接缺失,则可能是接口根本没有返回它,两者含义不同。

三、数组:把同类东西排成一列

数组用方括号表示,里面按顺序放多个值,用逗号分隔,最适合表示同类集合:

["阅读", "写作", "跑步"]

数组顺序有意义,不能随意互换。取值一般用下标,从 0 开始。对象回答“这是什么”,数组回答“有哪些、按什么顺序”。

四、对象和数组可以互相嵌套

真实数据很少只有一层。对象里可以放数组,数组里也可以放对象,例如订单包含多个商品:

{"orderId": "2026103001", "items": [{"title": "笔记本", "price": 12, "count": 2}], "paid": true}

读嵌套结构时,从外向内拆开:先看最外层是订单,再看 items 是商品数组,最后看每个商品的字段,就不会看晕。

五、解析:从文本到可用的数据

拿到 JSON 文本,第一步是解析。解析成功,得到程序可以直接访问的对象或数组;解析失败,通常说明文本不符合格式,常见原因有多余的尾逗号、用了单引号、键名没加引号,或括号没有成对出现。

反过来,把对象变成 JSON 文本叫序列化,常用于发送请求或保存数据。函数、未定义的值在序列化时可能被丢弃或转换,日期也常常变成字符串,关键字段最好在转换前后各检查一次。

小结

对象描述一件事的属性,数组保存一组有顺序的值,解析是文本与数据之间的桥梁。写 JSON 时,键名要直白稳定,同一字段保持类型一致,空值用 null 表达清楚。掌握这三点,再遇到复杂接口返回,就能先分层、再找键、最后确认类型。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。