神刀安全网

jo:通过shell命令创建JSON

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

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

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

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

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

jo:通过shell命令创建JSON

进入 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)

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » jo:通过shell命令创建JSON

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮