Shell函数返回嵌套的JSON属性

时间:2016-03-23 17:28:18

标签: json shell parsing

我正在编写一个shell函数来从输入JSON文件返回单个嵌套属性值。

JSON文件cookie.json的格式为:

"personalizationID": {
            "expires": null,
            "path": "/api",
            "secure": false,
            "value": "1458234194659-16"
        },
        "taxCode": {
            "expires": null,
            "path": "/api",
            "secure": false,
            "value": "aEFPyynhwJyzAHyfjXUlrGhblTtxWduqtCDMLxiD"
        }

所以我在尝试:

cat cookie.json | grep taxCode | cut -f 7

但它只返回"taxCode": {。我需要一个函数,给定三个参数,文件名cookie.json,outerProperty taxCode和nestedProperty value,返回innerProperty aEFPyynhwJyzAHyfjXUlrGhblTtxWduqtCDMLxiD的值。我不想使用任何其他库只进行一次嵌套值提取。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

也许你应该看看jq

https://stedolan.github.io/jq/

答案 1 :(得分:0)

以下是使用jq的解决方案。如果cookies.json包含正确的样本数据,则以下内容 命令

$ jq -M -r .taxCode.value cookies.json

产生

aEFPyynhwJyzAHyfjXUlrGhblTtxWduqtCDMLxiD