2015-11-04 78 views
0

我有一個帶有幾個幾何的TopoJSON文件。它看起來像這樣:使用jq將子對象的屬性分配給父字典

{ 
    "type": "Topology", 
    "objects": { 
    "delegaciones": { 
     "geometries": [ 
     { 
      "properties": { 
      "name": "Tlalpan", 
      "municip": "012", 
      "id": "09012", 
      "state": "09" 
      } 
... 

我希望能夠採取id場從properties,並將其分配給母公司,這樣的結果是:

{ 
    "type": "Topology", 
    "objects": { 
    "delegaciones": { 
     "geometries": [ 
     { 
      "id": "09012", 
      "properties": { 
      "name": "Tlalpan", 
      "municip": "012", 
      "id": "09012", // <-- It's okay if it's removed or not 
      "state": "09" 
      } 
... 

我嘗試了以下任務在jq上,但它是不正確的:

jq '.objects.delegaciones.geometries[].id = .objects.delegaciones.geometries[].properties.id' topo_df.json 

任何人都知道我可以如何使jq迭代元素一個接一個?或者我可以如何做到這一點?

回答

2

下面添加「ID」屬性的要求:

.objects.delegaciones.geometries[] |= (.id = .properties.id) 
+1

哇,我從來沒有想過,你可以指定分配本身內在的東西。有趣! –

+0

耶,我愛你! – Pablo

相關問題