首页 > 解决方案 > 在bash中将文本文件的数据转换为JSON数组

问题描述

我希望在 linux/bash 平台上使用命令以下面的 JSON 数组格式输出。谁能帮忙

文本文件中的数据

test:test
test1:test1
test4:test4

期望输出:

{array : 
   [
     {test:test},
     {test1:test1}, 
     {test4:test4}
   ]
}

标签: arraysjsonbashshell

解决方案


使用jq命令行 JSON 解析器:

<file jq -Rs '{array:split("\n")|map(split(":")|{(.[0]):.[1]}?)}'
{
  "array": [
    {
      "test": "test"
    },
    {
      "test1": "test1"
    },
    {
      "test4": "test4"
    }
  ]
}

这些选项Rs允许jq将整个文件作为一个字符串读取。

脚本split将此字符串分成几部分,以便具有预期的格式。


推荐阅读