jasper的技术小窝

关注DevOps、运维监控、Python、Golang、开源、大数据、web开发、互联网

json格式化小技巧

作者:jasper | 分类:Linux | 标签:   | 阅读 1377 次 | 发布:2015-10-24 12:45 a.m.

对于我们这些常年在命令行下面调试代码的人来说,对于json格式的数据的格式化一直是个头疼的问题,乱糟糟的一大堆,不利于快速获取到想要的信息,简单介绍几个有用的json数据格式化的小技巧。

一、在线json格式化工具

简单在google里面一搜就能搜到一大堆的这样的工具,简单列几个:

真的是好多好多(就搞不清楚了,大家都干一样的事情,为毛还造出那么多的轮子),他们的实现原理大多都一样,利用js来实现,一般是JSON.stringify函数。

二、命令行json格式化工具

那么在命令行下面还得copy到浏览器里面,多麻烦(你们人类就是懒啊),那么这时候就需要能在命令行下面格式化的工具了,下面来介绍几个常用的:

1、python -m json.tools

其实这个就是利用的python中的json这个library module;效果如下: 而且在校验不通过的时候还有错误信息的提示。
PS:其实在python 的-m里面还有一些很有用的工具能为我们提供方便,具体的就不多讲了,自己去看文档吧。

2、python的pjson模块

这个是一个python的第三方的module,用的时候需要先pip install pjson,既然是第三方的工具,肯定有比原生的有新的功能,看图: 其实也没啥,可以看到新增了kv的颜色对比。

3、来点python最原汁原味的

既然是最原生的,那就是直接的python代码咯,利用-c参数来直接干python代码,其实就是json的dumps方法啦,有一些参数可以选择: 既然是原生的,所以错误提示当然也就很原始了。

4、其他语言的json模块

其实大多数动态语言都实现了这样的功能,包括ruby、perl、nodejs等,这些我都不会搞啦,要用的话可以自行研究。

5.强烈推荐jq

这里推荐一个json处理的利器jq,这个玩意儿不是linux自带的,需要自己安装,下载地址http://stedolan.github.io/jq/download/linux64/jq;先来个复杂一点儿的json来爽一下吧: 清晰明了,而且在其背后也检查了数据的有效性,这里就不举例出来了。不仅如此,jq还提供了一些其他的功能,比如通过key获取value: 如果key不存在会返回null;

也可以嵌套解析,比如:

不仅如此,在jq里面还有一些内置的函数,获取json里面的所有key:

用has来判断是否存在某个key:

怎么样,是不是很强大的,具体的详细使用可以去研读代码https://github.com/stedolan/jq

总结

大体就介绍这么几个吧,对于简单的格式化使用前几个就足够了,对于复杂的json结构时,强烈建议使用jq!!!


转载请注明出处:http://www.opscoder.info/json_format.html

其他分类: