【发布时间】:2019-11-20 14:27:43
【问题描述】:
我正在使用 JQ 来呈现一些 JSON。一切都很好,但我需要的是没有键引号的输出。尝试使用原始选项,但这根本没有帮助。
脚本:
jq --raw-output --arg ID "$ID" '[.articles[] | { ...
输出:
[
{
"id": "20191022203822",
"title": "How tech companies measure “legal”",
我需要的是:
[
{
id: "20191022203822",
title: "How tech companies measure “legal”",
有人可以帮忙吗?
【问题讨论】:
-
那不是有效的 json。我担心除了将 json 加载到可以解析它并以您喜欢的任何格式自己输出的语言之外别无选择。
-
好吧,有些人可以将其读取为字符串,而不是名称/键。
-
每个符合 JSON 的实用程序都会按照 JSON 语法输出一个完整的 JSON,而您想要的是非 JSON 输出。我想你最好的选择是通过
sed运行它,你从标签中删除引号(但这种方法容易出现误报),例如:jq ... | sed -E 's/(^ +)"([^"]+)":/\1\2:/' -
@Dmitry Dude,你让我很开心,请添加作为答案。
-
某些程序(例如 mongo 集合配置或某些 javascript 字典格式)接受 json 之类的对象,其中键缺少引号。如果有人想知道为什么我们需要一种简单的方法来生成不兼容的 json 对象。
标签: json bash shell parsing jq