2016-12-06 50 views
1

我有兩個.json文件。 首先是1.json使用jq從另一個json獲取字段

{ 
    "id": "107709375", 
    "type": "page", 
    "title": "SomeTitle", 
    "space": { 
     "key": "BUSINT" 
    }, 
    "version": { 
     "number": 62 
    } 
} 

,第二個logg.json:

{ 
    "id": "228204270", 
    "type": "page", 
    "status": "current", 
    "title": "test-test", 
    "version": { 
     "when": "2016-11-23T16:54:18.313+07:00", 
     "number": 17, 
     "minorEdit": false 
    }, 
    "extensions": { 
     "position": "none" 
    } 
} 

我可以粘貼version.number從logg.json到version.number 1.json使用JQ?我需要類似的東西(這是絕對錯誤的):

jq-win64 ".version.number 1.json" = ".version.number +1" logg.json 

回答

1

logg.json作爲參數文件。然後你可以訪問它的值來改變另一個值。

$ jq --argfile logg logg.json '.version.number = $logg.version.number + 1' 1.json 

當然,你需要用雙引號在Windows命令提示符工作。

> jq --argfile logg logg.json ".version.number = $logg.version.number + 1" 1.json 

雖然文檔說,使用--slurpfile相反,我們只需要在文件中的單個對象,因此這將是完全適合使用--argfile代替。

+0

傑夫,它的工作原理!謝謝! –

+0

使用已棄用的'--argfile'選項可能不合適,因爲在將來的版本中不建議使用的功能往往會被刪除。不幸的是,'--slurpfile'替代方法不能完全相同。 –

相關問題