jo:通过shell命令创建JSON

2016-03-16 +5 302340人围观 ,发现 3 个不明物体 工具

我尝试损坏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)

发表评论

已有 3 条评论

取消
Loading...

特别推荐

推荐关注

活动预告

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php