首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSON也可以像SQL一样查询,所有开发人员的福音

拥抱高效人生,科技改变生活。每个人都能拥有适合自己的高效管理工具。大家好,我是牧凡。

前言

做开发的小伙伴,对JSON肯定不会陌生。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于文本,易于人阅读和编写,同时也易于机器解析和生成。应该说现如今的开发领域里,JSON的应用是最广泛的。

我们通常会在以下场景中需要对JSON进行处理:

调试APIs:

开发者在调试APIs时需要快速查看和修改JSON数据。

数据转换:

需要将JSON数据转换为其他格式,如XML或CSV。

教育和学习:

学生和教师在学习JSON和APIs时需要可视化工具来更好地理解数据结构。

配置管理:

需要查看和编辑复杂的JSON配置文件。

虽然程序开发中,我们有的是手段来对它进行解析、格式化、转义等。但是它现在的应用实在是过于广泛,有时候为了调试方便,就需要有一个可视化的工具,能够让我们方便快捷的对JSON字符串进行操作。

当然,提供这种功能多工具非常多。随便举几个例子,你肯定多多少少都用过。

好用的JSON可视化工具推荐

JSONView:

一个Chrome插件,可以在浏览器中格式化和验证JSON。

JSONLint:

一个在线工具,提供格式化、验证和压缩JSON数据。

Visual Studio Code:

一个强大的代码编辑器,内置JSON支持和格式化功能。

Postman:

一个API开发工具,支持JSON数据的可视化和操作。

JQ Playground:

一个在线工具,用于测试和学习JQ(一种处理JSON数据的命令行语言)。

Prettier:

一个代码格式化工具,支持多种语言,包括JSON。

JSON Formatter & Validator:

一个浏览器插件,提供JSON数据的格式化和验证。

DBeaver:

一个数据库管理工具,支持多种数据库,包括JSON的可视化和编辑。

网上,也有很多提供类似功能的在线工具

JSONLint

一个在线的JSON验证器和格式化工具,可以帮助你检查JSON数据的语法错误,并进行格式化。

网址:

Beautify Tools - JSON

提供JSON格式化和验证功能,同时还有一些其他代码美化工具。

网址:

JSON Formatter & Validator

一个功能全面的在线工具,可以格式化和验证JSON数据,同时提供高亮显示。

网址:

Convert JSON

除了格式化和验证,这个工具还提供了JSON与其他格式(如XML和YAML)之间的转换功能。

网址:

JSON to CSV Converter

一个将JSON数据转换为CSV文件的在线工具,适合需要将JSON数据导入表格的用户。

网址:

JSON Editor Online

一个功能强大的在线JSON编辑器,支持格式化、验证和高亮显示。

网址:

Code Beautify

提供JSON格式化和验证,同时还有其他多种编程语言的美化工具。

网址:

用过这些工具的大家肯定有会这样的共识:功能很好很强大,就是广告有点多。一不小心,就点到广告页面里,再也回不来了。

所以,以上的这些工具都不是我的首选。我自己现在最常用的JSON解析工具是自己搭建的,绝对没有广告,甚至还可以根据自己的喜欢进行功能优化。完全做到随心所欲。

自建的JSON解析工具

这个工具已经被集成到了我的工具箱中。访问地址是:https://www.skillup.com.cn/json

页面如下

页面中已经默认显示了一段JSON格式的数据。这是一段示例代码,告诉大家,JSON就是长这样子的。

功能介绍

数据自动去除转义

原本的功能中,是不支持自动转义的。但是这种小问题,对于有技术功底的我们来说,并不困难。

随便更改了几行代码,就实现了自动去除转义的效果了。

比如下面这个字符串,就是被转义之后的结果

{\"Array\":[1,2,3],\"Boolean\":true,\"Null\":null,\"Number\":123,\"Object\":{\"a\":\"b\",\"c\":\"d\"},\"String\":\"Hello World\"}

我们拿着这个字符串,到一些JSON编辑工具中,是会报错的。因为它并不是一个真正的JSON结构。但是在我们的工具箱中,就不需要有这个担心了。因为当我们给复制到文本框中之后,自动的就会被转换成JSON结果了。

数据美化和压缩

工具顶部,从左开始数,第一和第二个菜单,分别对应的就是【数据美化】和【数据压缩】了

点击【数据美化】按钮后,结果就会被格式化,页面中会根据JSON的层级自动加上缩进和换行效果,便于大家查看

格式化的结果便于我们查阅,但是查阅过后,有时候也需要将其压缩,这样会节省空间。压缩其实是格式化的反向结果,点击之后,页面上的结果就会变回这样

数组排序

第三个菜单对应的操作是【数组排序】

顾名思义,是可以针对一个数组格式的JOSN字符串,根据对应的属性值进行排序。

比如这样的一段内容

{  "items": [    {      "name": "apple",      "value": 5    },    {      "name": "banana",      "value": 2    },    {      "name": "grape",      "value": 8    },    {      "name": "kiwi",      "value": 4    },    {      "name": "orange",      "value": 3    }  ]}

我们可以根据不同的字段,进行升序还是降序的排列。便于我们对结果进行数据查看。

复杂操作

第四个菜单对应的操作,名字是【变换】。

实际上,它是一个可以支持多维复杂操作的一个选项。

从操作向导中,可以看出。这个按钮是支持JMESPath的查询、排序或转化操作的。

我查了一下什么是JMESPath。它的定义如下

JMESPath 是一种用于查询和转换 JSON 数据的语言。它允许用户以一种简单而直观的方式提取和操作 JSON 数据,适用于各种编程语言和工具中。在 JMESPath 中,你可以使用路径表达式来访问 JSON 数据的各个部分,并对其进行过滤、排序、转换等操作。

下面,简单的介绍几个常用的命令,比如我们的JSON数据是:

{

   "fruits": [

       { "name": "apple", "value": 5 },

       { "name": "orange", "value": 3 },

       { "name": "banana", "value": 2 },

       { "name": "grape", "value": 8 },

       { "name": "kiwi", "value": 4 }

   ]

}

查询

查询所有水果的名称:

fruits[*].name

结果可以在预览框中查看

过滤

查询值大于4的水果

fruits[?value > 4]

结果如下

排序

在我的工作中,我其实对排序操作的需求是最为频繁的。以前都是在excel中操作,但是现在,我也可以在这个工具中进行了

虽然 JMESPath 本身不支持直接排序,但可以通过查询和表达式组合来实现。

比如按照value进行排序

fruits | sort_by(@, &value)

结果如下

转换

查询并转换为包含名称和相应值的字符串

fruits[*].join(`: `, [name, value])

结果如下

这个命令,是将fruits数组中的name和value对应的值,拼接到了以给字符串中了。

这里需要注意的是,这个命令只能对字符串类型的参数可用,比如这个例子中的value的值是数字,其实用这个命令就会报错,需要将value改成字符串,才会见到真正的结果。

JMESPath 提供了一种灵活且强大的方式来处理 JSON 数据。通过组合查询、过滤、排序和转换,你可以轻松地从复杂的 JSON 结构中提取所需的信息。你可以在许多编程语言中找到 JMESPath 的实现,例如 Python、JavaScript 等。

我们这里只介绍了几个常用的,简单的操作。如果你有其他的想法需要验证,也可以在这里进行尝试。

结语

可能是因为工作的原因,我是一个重度的JSON使用者。几乎无时无刻都在与JSON打交道。

以前,在浏览器里收藏了几个常用的JSON格式的化的工具。但是自从在自己的工具箱中,集成了这个工具之后,我的这些操作几乎全部都转移到工具箱中来进行了。

不管是简单的还是复杂的操作,这里基本都已经能够满足我了。

而且,我再也不需要记忆那么多复杂的网址,去登陆其他网站,并与不计其数的广告进行战斗了。

如果你也是一个JSON的重度使用者,你也想要一个干净整洁且功能全面的JSON工具,你也可以来我这里使用,也可以自己搭建一个同样的工具。

感谢您的观看,喜欢请关注,赞同请收藏。期待您的反馈,欢迎来交流。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OE4hznVWqooPjcvds65cBU6A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券