在当今数据驱动的世界中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,得到了广泛的应用。本章详细讲解了JSON数据格式的基本概念、JSON格式的数据转化以及推荐一些实用的在线工具来帮助用户格式化JSON数据。
JSON是一种轻量级的数据交互格式,采用完全独立于编程语言的文本格式来存储和表示数据,本质上是一个带有特定格式的字符串。JSON负责不同编程语言中的数据传递和交互,类似国际通用语言中的英语。
各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型,而其它语言可能没有对应的字典。为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。如下图,以Python和C语言互传数据为例:
①基本结构
JSON是一个键值对(key/value)的集合。
②格式规范
①序列化
输出结果:<class 'str'>{"name": "\u5c0f\u660e", "age": 11}, {"name": "\u5c0f\u7ea2", "age": 15}, {"name": "\u5c0f\u7389", "age": 17}
如果有中文可以带上ensure_ascii=False参数来确保中文的正常转换。
输出结果:<class 'str'>{"name": "小明", "age": 11}, {"name": "小红", "age": 15}, {"name": "小玉", "age": 17}<class 'str'>{"name": "小菲", "address": "北京"}
②反序列化
输出结果:{'name': '小明', 'age': 11}, {'name': '小红', 'age': 15}, {'name': '小玉', 'age': 17}<class 'dict'>{'name': '小菲', 'address': '北京'}
问题:在编写代码的过程中我们会发现如下图那样编写会报错。
出现错误的原因是双重引号的使用问题。在Python中使用双引号"来定义字符串时,如果字符串中又包含了双引号",则会导致Python解析字符串时出现混淆,无法正确解析字符串的边界和内容,从而引发语法错误。
解决方案:
【例题】
以下为一个不符合规范的JSON文件,请通过代码取出其日期数据。
输出结果:'2.22', '2.23', '2.24', '2.25', '2.26'
虽然JSON格式清晰易懂,但当数据量大或嵌套层次深时,手动阅读和编辑JSON数据可能会变得非常困难。在这种情况下,格式化工具显得尤为重要。
JSON格式化就是将原本难以阅读的JSON字符串转换为更具可读性的结构,便于我们理解数据的层次和关系,通常通过添加适当的缩进和换行来完成。
例如:
准备一段复杂的JSON数据:
①JSONLint
格式化后的数据:
②JSON Formatter & Validator
格式化后的数据:
③JSON Editor Online
格式化后的数据:
④ab173
该网站提供了快速查看和格式化 JSON 数据的在线工具。用户可以将 JSON 数据粘贴到网站上,以便查看其结构、格式化和调试,帮助用户浏览复杂的 JSON 数据,以理解其层级和内容。
粘贴标准的 JSON 数据并点击格式化。
格式化后的JSON数据:
点击左上角的视图,在视图界面中我们可以折叠和展开格式化后的 JSON 数据,便于查看更深层的数据结构。