记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

jo:通过shell命令创建JSON

2016-03-16 09:55

我尝试损坏shell脚本来创建JSON。你可能已经在某些地方看过这个了:

echo '{"name":"Jane"}'

如果一个元素包含一个环境变量:open double, close single, add variable, open single, blergh。

脚本会以下面的方式打印,但是它的可读性并没有提高很多:

printf '{"name": "%s"}\n' "Jane"

jo-logo.png

进入 jo:

$ jo name=Jane
{"name":"Jane"}

某天晚上我突然有了想法,我不知道为什么花了我这么长时间:

$ jo time=$(date +%s) dir=$HOME
{"time":1457195712,"dir":"/Users/jpm"}

BAM!Jo尝试引入类型、null、布尔类型、字符串和数字。它还有数组,打印如下:

$ jo -p -a spring summer winter
[
"spring",
"summer",
"winter"
]

通过HN评论启发,我添加了另一个hack:如果一个键值开始于左大括号({) 或者一个中括号([]),我们试图解码JSON;它允许jo添加对象或者数组.

$ jo -p name=JP object=$(jo fruit=Orange hungry@0 point=$(jo x=10 y=20) number=17) sunday=false
{
"name": "JP",
"object": {
"fruit": "Orange",
"hungry": false,
"point": {
"x": 10,
"y": 20
},
"number": 17
},
"sunday": false
}

为什么这么做呢?我需要很多JSON来测试OwnTracks,脚本看起来会更方便的多。

$ jo _type=location \
cog=$((RANDOM % 360)) \
t=u \
lat=48.85833 \
lon=2.29513 \
acc=5 \
tid=JJ \
tst=$(date +%s) | mosquitto_pub -t owntracks/jjolie/test -l

Jo有一个使用手册,快去看看吧!

更新:

Caius Durling提供了 jo 的 Homebrew tap

Jo在创建时就有logo了,color被Frederic Cambus授权;

Shawn Webb将 jo 添加到了 HardenedBSD 的文章

我已经把jo转换成自动工具,这个版本将要发布

Alessio Sergi已经把 jo 加入到 voidlinux,安装 xbps-install -Su jo;

我已经建立了一个 Win32,发布链接

Lance Chen建立了 jo 的 ArchLinux 端口

原文链接:jpmens.net FB小编/FireFrank编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

知识来源: www.freebuf.com/tools/98569.html

阅读:90878 | 评论:0 | 标签:工具 Bash Shell JSON shell

想收藏或者和大家分享这篇好文章→复制链接地址

“jo:通过shell命令创建JSON”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云