来自外部文件的Json

问题描述 投票:-1回答:1

我需要创建一个具有以下内容的JSON文件:

{
    "destinationVersion":"4",
    "sourceVersion":"0",
    "props":{
       "METADATA_SIZE":"91669",
       "METADATA_HASH":"O7CLdR2j7qoD0RI2k1AGc8b+xoWYn20Ic24eZ1ZWUWE=",
       "FILE_SIZE":"980374602",
       "FILE_HASH":"+XW4QKN5Y4ynTx43m4NYbMuk1x3P91f1biAVZBpj4fI="
    }
 }

props块的主要障碍。这些props的值必须从文本文件中读取。它们的格式如下:

FILE_HASH=+XW4QKN5Y4ynTx43m4NYbMuk1x3P91f1biAVZBpj4fI=
FILE_SIZE=980374602
METADATA_HASH=O7CLdR2j7qoD0RI2k1AGc8b+xoWYn20Ic24eZ1ZWUWE=
METADATA_SIZE=91669

我的任务是读取文件,并以某种方式创建最终的JSON(将格式化的文本追加到props块中)。我尝试通过jq执行此操作,但是我不知道如何转换要添加到最终JSON中的文件。首选方式-bash + jq

json bash jq
1个回答
0
投票

由于Q仅指示key = value字符串的来源,因此下面的重点是将这些字符串转换为JSON对象。

调用:jq -n -R -f program.jq props.txt

program.jq:

[inputs | capture("^(?<key>[^=]*)=(?<value>.*)")]
| from_entries

在这里使用inputs有几个小的优点,但不是必需的。

© www.soinside.com 2019 - 2024. All rights reserved.