我尝试损坏shell脚本来创建JSON。你可能已经在某些地方看过这个了:
echo '{"name":"Jane"}'
如果一个元素包含一个环境变量:open double, close single, add variable, open single, blergh。
脚本会以下面的方式打印,但是它的可读性并没有提高很多:
printf '{"name": "%s"}/n' "Jane"
进入 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)