通过JQ添加JSON数组会在字符串中引入Unicode字符

时间:2018-11-22 13:52:48

标签: json bash unicode jq

我有一个JSON文件,我想使用bash和最新安装的JQ在其中添加数组元素。我可以附加它,但是结果字符串具有unicode字符,如下所示。验证程序数组中的第一个元素是原始元素,第二个是附加的代码。 (不是整个json文件)

var value = new DTO { 
    Date = someDateTime.ToString("dd-MMM-yyyy hh:mm:ss tt")
};

单独打印address元素将打印没有任何utf / unicode编码字符的元素。

"validators": [
{
  "address": "85BAF568E7F89277E47D3FC8E111775A4F6992FA",
  "pub_key": {
    "type": "tendermint/PubKeyEd25519",
    "value": "BCzCLcW7rZ9VJgAtEUoDN17qcZw8ZvpYbPsL6eOy3No="
  },
  "power": "10",
  "name": ""
},
{
  "address": "\u001b[32m\"F75E15A3949824B685A3C5BFCDEED7E3DA4277AE\"\u001b[0m\r",
  "pub_key": "\u001b[37m{\u001b[0m\u001b[34;1m\"type\"\u001b[0m\u001b[37m:\u001b[0m\u001b[32m\"tendermint/PubKeyEd25519\"\u001b[0m\u001b[37m,\u001b[0m\u001b[34;1m\"value\"\u001b[0m\u001b[37m:\u001b[0m\u001b[32m\"INeR51z41k6jPAEJ5rV+1TY+4sxnbIykc4bfJFmSCQ8=\"\u001b[0m\u001b[37m\u001b[37m}\u001b[0m\r",
  "power": "10",
  "name": "node2"
}
]

我使用以下代码合并代码:

{
    "type": "tendermint/PubKeyEd25519",
    "value": "BCzCLcW7rZ9VJgAtEUoDN17qcZw8ZvpYbPsL6eOy3No="
}

我正在运行macOS。任何帮助或建议,将不胜感激。

1 个答案:

答案 0 :(得分:0)

正如评论中提到的@choroba,这是颜色序列字符。我为JQ添加了-M标志以禁用颜色,从而删除了它们。