一般使用的情况和 pycharm

基本上任何编辑器,IDE都有json语法高亮,标识json错误功能,所以pycharm可以高亮,以及标识文件中的错误。

pycharm 可以指定一个 py 文件中的字符串为 json 字符串,操作方法:

点击字符串的任意位置 -> 点击左侧出现的小灯泡 -> Inject language or reference -> 查找 JSON 并选中

这样你的 py 文件中的字符串就以 json 格式被高亮了。和 python

python 内置的 json 库可以实现 json 格式文档或者字符串与 python 的 list 类型或者 dict 类型的转换。

进阶使用

除此之外,pycharm 和 python 都可以使用 jsonschema 来进行 json 的内容及形式校对。

这里需要简单提一下 jsonschema 是什么,它就是一个描述其它 json 的正确形式的文件,它本身也是一个 json 文件,它可以做到不限于:描述一个 json object 的每个属性分别是什么类型

描述某个 json obejct 的属性名们该是什么样子的字符串(用正则)

描述某个位置的字符串长度应该是多少,格式是怎么样(正则)

数字类型的大小

某个 json array 的每个 item 应该是一个怎么样的 json object

用枚举(enum)描述某个位置应该是一个或者几个中的某一个东西

是否允许出现描述之外的属性名

定义一个 jsonschema,然后在需要用到的地方直接引用它,避免重复写一样的schema,例如 IP 格式之类,就可以提取成一个公用 schema

等等。。。更多可查看UnderstandingJsonSchema,网上可以搜到这本书的pdf

那么话归原题,这关 pycharm 和 python 什么事?在 pycharm 中,你可以指定一个 json 文件 A 为另一个 json 文件 B 的 schema(需要设置),这样以后,文件 B 如果不符合 文件 A 指定的规范,就会有错误提示,而且挺详尽。其次如果你在文件 B 手写 json,会有自动补全以及候选提示。

在 python 中,你如果安装了 jsonschema 库,你可以用它来校验一个 json 是否符合规范(不过错误提示没有那么详尽就是了。想象一下,如果每个后端小天使给每个接口提供一个 jsonschema,大家都按这个来,就不会在对接的时候发生字段名错误,简单的值错误等等低级而又容易遇到的错误了。

PSjson 其实基本上每个程序语言都会用到了,每个语言也都有 json 读写库

jsonschema 同理,很多语言都有它的库

有些 IDE 是支持 jsonschema 的,如 idea 全家桶,vscode。早期 vscode 修改配置就是直接改 json 文件,那时它的自动补全提示功能就是用 jsonschema 实现的