簡體   English   中英

使用 jq 將 JSON 轉換為簡單的 key=value 文件

[英]Convert JSON to simple key=value file using jq

我有一個看起來像這樣的 JSON 文件:

{
  "key1": "value1",
  "key2": "value2",
  ...
  "keyn": "valuen"
}

沒有 arrays 或嵌套對象,只是一個簡單的鍵->值 map。 我想使用jq將此文件轉換為以下格式的純文本配置文件:

KEY1=value1
KEY2=value2
...
KEYn=valuen

(結果文件中的鍵應為大寫)。 我在網上搜索了各種可用的jq教程,期望在那里會涵蓋這樣一個明顯的(在我看來)示例(至少沒有大寫),但事實並非如此。 我發現的所有教程都使用了更復雜的示例,例如從 JSON 文件中提取特定值,處理 arrays 或嵌套結構等。但是,沒有簡單的 JSON 到文本的轉換。 man jq也無濟於事,還不太清楚。 你能幫我獲得我想要的結果嗎?

注意:必須使用jq而不是任何其他工具來完成,因為它將在有權訪問jq的腳本中使用,但不能保證系統上存在其他用於處理 JSON 的工具。

您可以使用to_entries遍歷 object 中的條目,然后將每個條目格式化為字符串並使用-r (--raw-output) 標志,如下所示:

$ cat example.json
{
  "key1": "value1",
  "key2": "value2",
  "keyn": "valuen"
}
$ jq -r 'to_entries[] | (.key | ascii_upcase) + "=" + .value' < example.json
KEY1=value1
KEY2=value2
KEYN=valuen

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM