2015-11-04 129 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

相关问题