2017-11-22 8 views
1

jsonファイルに都市名があり、別のファイルから特定の都市コードに置き換えたいと思います。コードリストは、私がcodes.jsonにしようとしてきた、JQへの供給するのが最も簡単です何もすることができます別のファイルの値を使用してJSONの値をjqに置き換えよう

{ 
    "Customer": { 
    "CustomerName": "Customer1", 
    "City": "Cityname1" 
    } 
} 
{ 
    "RelevantObject": false 
} 
{ 
    "Customer": { 
    "CustomerName": "Customer2", 
    "City": "Cityname2" 
    } 
} 
# {... 

data.jsonはおおよそです

{ 
    "Cityname1": "Code1", 
    "Cityname2": "Code2" 
} 

が、私は、任意のフォーマットは、言ったように良い。望んだ結果:

{ 
    "Customer": { 
    "CustomerName": "Customer1", 
    "City": "Code1" 
    } 
} 
{ 
    "RelevantObject": false 
} 
{ 
    "Customer": { 
    "CustomerName": "Customer2", 
    "City": "Code2" 
    } 
} 

私はjq --argfile codes codes.jsonでファイルを読み込むしようとしてきたが、私はjq$codesを参照するのに苦労持っていた:.Customer.City=$codes.?を?

答えて

1

ここで良い答えの鍵は、次のとおりです。

.Customer.City |= $codes[.] 
+0

、ありがとうございます。 –

+0

どうやら、 '.Customer.City'がなければ、私はエラーを受け取ります:_ nullでの_Cannotインデックスオブジェクト。私は '.Customer.City =(nullの場合は.Customer.City == null、それから' empty 'else .Customer.City) 'で固定し、' empty'オブジェクトを 'codes.json'に追加しましたが、それのための教科書の解決策(または教科書:)はありますか? –

関連する問題