2017-02-21 73 views

回答

4

您可以使用to_entries爲:

jq -r 'to_entries[]|"\(.key)=\"\(.value)\""' input.json 

順便說一下,在Java屬性文件,你不需要引用值:

jq -r 'to_entries[]|"\(.key)=\(.value)"' input.json 
+0

使用'@ sh'而不是自己引用值;這對於確保'{「鍵」:「\」value \「」}'正確引用「是必要的。 (''... |「\(.key)= \(。value | @sh)」'')。 – chepner

+0

請解釋「@sh」實際上是什麼...... – bentzy

+0

@chepner OP想寫一個屬性文件,這讓我想到Java。這些文件遵循與shell不同的語法規則。其實雙引號根本就沒有必要。那麼,該運作似乎期待他們。 – hek2mgl

0

實際上`to_entries'和`@sh'過濾器的使用只適用於簡單的 JSON對象(正如問題所述)。在我的情況(嵌套json)似乎我會使用npm的包「json-to-properties」