LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

一文吃透JSON格式,掌握核心要点,告别格式报错

admin
2026年4月22日 17:54 本文热度 44
你有没有过这样的经历?打开开发工具,看到一串用大括号、中括号包裹的字符,明明每个字都认识,连起来却一脸懵;调用接口时,只因少写一个逗号、用了单引号,就报错半天找不到问题;想存一组数据,又怕格式混乱,后续无法解析。

其实,这串常见的字符,就是编程、接口开发、数据存储中最常用的JSON格式——它并非高深技术,而是一种通用、轻量简洁的数据交换格式,如同所有编程语言都能识别的数据记事本,贯穿前端、后端、爬虫、APP开发等几乎所有场景。

一、先搞懂:JSON到底是什么?
JSON:JavaScript Object Notation,但千万别被名字误导,它虽然源于JavaScript,却和具体的编程语言无关,Python、Java、Go、PHP等所有主流语言都能轻松解析和生成它。
简单来说,JSON的核心作用就两个:
存数据、传数据
比如你刷公众号时,文章的标题、作者、发布时间、内容,本质上就是后端用JSON格式打包好,传递给前端展示的;你用爬虫爬取数据时,网站返回的多半也是JSON格式;甚至手机APP里的用户信息、商品列表,软件的配置参数,很多都是用JSON存储的。
它的优势特别明显:体积小、读写快、结构清晰,既方便人阅读,也方便计算机解析,这也是它能取代繁琐的XML,成为现在数据交换首选格式的原因。
举个直观示例,一段描述用户信息的JSON如下,其结构清晰易懂:
{  "name": "张三",  "age": 25,  "isStudent": false,  "email": null,  "hobbies": ["读书", "编程", "旅行"],  "address": {    "city": "北京",    "zipCode": "100000"  }}

二、JSON的核心语法
JSON的语法非常简单,但也极其严格——多一个逗号、错一个引号,都会导致解析失败。多数格式报错,都源于违反了相关规则,需重点牢记。
1.对象和数组的数据结构
JSON只有两种基础结构,所有复杂的JSON数据,均由这两种结构嵌套组合而成:

  • 对象(Object):用 {} 包裹,里面是一组键值对(key: value),键和值之间用冒号: 分隔,多个键值对之间用逗号 , 分隔。比如上面例子中,整个用户信息就是一个对象,address也是一个嵌套的对象。
  • 数组(Array):用 [] 包裹,里面是一组有序的值,值之间用逗号 , 分隔。值可以是字符串、数字、对象,甚至是另一个数组,比如上面的hobbies就是一个数组,里面存了3个字符串值。

2.支持的数据类型
JSON支持6种数据类型,没有多余的复杂类型,干净又简洁,对应到常见编程语言也很好理解:

  • 字符串(String):必须用 双引号 包裹(单引号不合法),可以包含中文、特殊符号,支持转义字符(比如 \n 表示换行、\" 表示双引号)。示例:"name": "张三"、"message": "Hello\nWorld"。
  • 数字(Number):直接写,不用加引号,支持整数、浮点数和科学计数法,不能有前导零(除了0本身)。示例:"age": 25、"price": 99.9、"count": 1.23e4。
  • 布尔值(Boolean):只有两个值,true(真)和 false(假),必须小写,不能加引号。示例:"isStudent": false。
  • 空值(Null):表示没有值,用 null 表示,必须小写,不能加引号(注意和Python的None、JavaScript的undefined区分开)。示例:"email": null。
  • 对象(Object):嵌套结构,用 {} 包裹,比如上面的address对象。
  • 数组(Array):有序列表,用 [] 包裹,比如上面的hobbies数组。

3. JSON的语法规则

  • 键(key)必须是字符串,必须用双引号包裹,不能用单引号、也不能不加引号。错误:{name: "张三"}、{'name': "张三"};正确:{"name": "张三"}。
  • 字符串必须用双引号,单引号不合法。错误:{"name": '张三'};正确:{"name": "张三"}。
  • 键值对之间、数组元素之间,用逗号分隔,但最后一个元素后面不能加逗号(高频报错点)。错误:{"name": "张三", "age": 25,};正确:{"name": "张三", "age": 25}。
  • JSON不支持任何注释(// 或 /* */ 都不行),加了注释会直接报错。如果需要备注,建议单独写文档,或使用支持注释的JSONC格式(仅用于配置文件)。
  • 不能使用undefined、函数、日期对象等类型,这些是编程语言特有的,JSON不支持。比如{"date": new Date()} 是错误的,可改为 {"date": "2026-04-18"}(用字符串表示日期)。


三、不同编程语言的JSON解析与生成说明
JSON作为通用的数据交换格式,不同编程语言均提供了对应的解析与生成方法,以下针对三种主流编程语言,结合实际开发场景提供完整案例,便于直接复制应用。
JavaScript语言
JavaScript内置JSON对象,无需导入额外模块,可直接实现JSON字符串与JavaScript对象的相互转换,用法简洁高效,以下是完整可运行案例。
// 案例1:JSON字符串解析为JavaScript对象// 定义符合规范的JSON字符串(对应上文用户信息示例)const jsonStr = '{"name""张三","age"25,"isStudent"false,"email": null,"hobbies": ["读书""编程""旅行"],"address": {"city""北京","zipCode""100000"}}';// 解析JSON字符串,转换为JavaScript对象const userObj = JSON.parse(jsonStr);// 调用解析后的对象属性,用于实际开发console.log(userObj.name); // 输出:张三console.log(userObj.age); // 输出:25console.log(userObj.address.city); // 输出:北京// 案例2:JavaScript对象生成JSON字符串// 定义JavaScript对象const productObj = {  productId: 1001,  productName: "笔记本电脑",  price: 5999.99,  inStock: true,  tags: ["轻薄""高性能""商务"]};// 将对象转换为JSON字符串const productJson = JSON.stringify(productObj);// 输出转换后的JSON字符串,可用于接口传输或存储console.log(productJson);// 输出结果:{"productId":1001,"productName":"笔记本电脑","price":5999.99,"inStock":true,"tags":["轻薄","高性能","商务"]}}

Python语言
Python通过内置的json模块,实现JSON数据的解析与生成,需先导入模块,支持多种参数配置,以下案例涵盖基础用法与常用场景。
import json# 案例1:JSON字符串解析为Python字典/列表# 定义JSON字符串json_str = '{"name""张三","age": 25,"isStudent": false,"email": null,"hobbies": ["读书""编程""旅行"],"address": {"city""北京","zipCode""100000"}}'# 解析JSON字符串,转换为Python字典user_dict = json.loads(json_str)# 调用字典中的数据,适配Python开发场景print(user_dict["name"])  # 输出:张三print(user_dict["hobbies"][0])  # 输出:读书print(user_dict["address"]["zipCode"])  # 输出:100000# 案例2:Python对象生成JSON字符串# 定义Python字典(可序列化对象)book_dict = {    "bookId": 2001,    "bookName""Python编程入门",    "author""小琳",    "price": 59.9,    "publishDate""2026-01-01",    "chapters": ["基础语法""数据类型""JSON解析"]}# 生成JSON字符串,indent参数用于格式化输出(便于阅读)book_json = json.dumps(book_dict, indent=2, ensure_ascii=False)# 输出JSON字符串print(book_json)# 输出结果(格式化后):# {#   "bookId": 2001,#   "bookName": "Python编程入门",#   "author": "小琳",#   "price": 59.9,#   "publishDate": "2026-01-01",#   "chapters": [#     "基础语法",#     "数据类型",#     "JSON解析"#   ]# }}


阅读原文:原文链接


该文章在 2026/4/23 16:22:13 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号