• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wsgzao
V2EX  ›  程序员

使用 Bash Shell 处理 JSON 文件

  •  
  •   wsgzao ·
    wsgzao · Jun 19, 2015 · 12328 views
    This topic created in 4157 days ago, the information mentioned may be changed or developed.

    前言

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文提供一个真实的测试用例需求,设计逻辑类似Makefile,我以Bash处理JSON为例,Coding水平有限,请各位多多包涵哈,欢迎大家一起学习和挑战各种不同的语言来实现。

    巧用jq处理JSON数据


    更新历史

    2015年06月19日 - 初稿

    阅读原文 - http://wsgzao.github.io/post/bash-json/

    扩展阅读

    22 replies  •  2015-06-20 13:34:11 +08:00
    Hawk
    Hawk
    Jun 19, 2015
    1
    楼主 blog theme能fork吗
    Hawk
    Hawk
    Jun 19, 2015
    2
    没点过去看 不好意思
    wsgzao
    wsgzao
    OP
    Jun 19, 2015
    3
    @Hawk 没事
    cxl008
    cxl008
    Jun 19, 2015
    4
    还以为是纯bash,多用了个 jq 是神马?
    ChiangDi
    ChiangDi
    Jun 19, 2015
    5
    我也以为是 bash ,原来是 bash 调用 jq...
    wsgzao
    wsgzao
    OP
    Jun 19, 2015
    6
    @cxl008 我一开始想使用Python 3编写,但刚开始学习@廖雪峰的Python 3教程,快速学习的功力还不够深,Bash本身也可以处理但使用`sed, awk, grep`等命令或显得很复杂,通过Stack OverFlow找到jq的方法不错就复用了
    celon
    celon
    Jun 19, 2015
    7
    bash下的 jq 很好用,用这个写了一套操作bitcoin的脚本
    Hawk
    Hawk
    Jun 19, 2015
    8
    @wsgzao https://pypi.python.org/pypi/jq/0.1.3
    已经有了python实现的jq
    wsgzao
    wsgzao
    OP
    Jun 19, 2015
    9
    @Hawk 非常感谢哈
    zodiac1111
    zodiac1111
    Jun 19, 2015
    10
    bash的来了... [Pure-shell JSON parser](https://github.com/rcrowley/json.sh)
    小.只是parser.有在ash上用的.安利一下.
    lululau
    lululau
    Jun 19, 2015❤️1
    11
    jq 怎么成 bash 下的了,明明是 zsh 下的啊
    shizukoto
    shizukoto
    Jun 19, 2015
    12
    此外还可以用 https://www.npmjs.com/package/json ,常用的取属性操作等非常方便。而且基于 nodejs ,单文件、无依赖项。

    echo '{"fred":{"age":42}}' | json fred.age
    cattail
    cattail
    Jun 19, 2015❤️1
    13
    > 易于人阅读和编写

    笑过
    lilydjwg
    lilydjwg
    Jun 19, 2015
    14
    jq 很强大,不过要新学一种 mini-language。如果需求非常简单的话,可以考虑 jshon 命令,功能很有限,但是用法也非常简单。
    ekousp
    ekousp
    Jun 19, 2015
    15
    文中的 json 只是个测试用例,作者写的程序不符合需求。
    Arthur2e5
    Arthur2e5
    Jun 20, 2015 via Android
    16
    表示有个 bash 库叫做 https://github.com/ingydotnet/json-bash 。
    Arthur2e5
    Arthur2e5
    Jun 20, 2015 via Android
    17
    唔不过 jq 很厉害的样子…毕竟是门小语言了。

    另外楼上那个纯 POSIX 的 json parser 也挺有意思…
    Mutoo
    Mutoo
    Jun 20, 2015
    18
    支持 json5 么。。http://json5.org/
    ys0290
    ys0290
    Jun 20, 2015 via iPhone
    19
    用bash处理dnspod的json返回结果,把我弄吐血了,所以干脆用大牛的方案改了改😂
    Septembers
    Septembers
    Jun 20, 2015 via Android
    20
    @lilydjwg 我在Bash里用Python处理JSON
    lilydjwg
    lilydjwg
    Jun 20, 2015
    21
    @Mutoo 这个好赞,不过有多少支持呢?
    wsgzao
    wsgzao
    OP
    Jun 20, 2015
    22
    @ekousp 嗯,我文章最后也写了问题,欢迎大家使用自己擅长的语言写出更优质的代码哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4553 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 09:39 · PVG 17:39 · LAX 01:39 · JFK 04:39
    ♥ Do have faith in what you're doing.