PowerShell'de JSON Dosyası Nasıl Düzenlenir (Örnekle)


Genellikle PowerShell'i kullanarak bir JSON dosyasındaki değerleri düzenlemek isteyebilirsiniz.

İşte bunun nasıl yapılacağına dair bir örnek:

$file = Get-Content my_teams.json -raw | ConvertFrom-Json
$file | % {if($_.Location -eq 'Dallas'){$_.Name='Mavs'}}
$file | ConvertTo-Json -depth 32 > new_teams.json

İşte bu özel örneğin yaptığı şey:

  • Öncelikle my_teams.json adlı JSON dosyasını alın.
  • Daha sonra, dosyanın Konum alanındaki 'Dallas'a eşit olan her değer için, Ad alanındaki ilgili değeri 'Mavs'a eşit olacak şekilde güncelleyin
  • Son olarak, bu değişiklikleri new_teams.json adlı yeni bir JSON dosyasına aktarın.

Not: ConvertTo-Json kullanılırken derinlik için varsayılan değer 2'dir, ancak biz derinlik değerini belirtiyoruz yeterince derin bir şekilde iç içe yerleştirilmiş bir JSON'a sahip olmamaktan kaynaklanabilecek sorunları önlemek için bu örnekte güçlü>32 kullanın.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: PowerShell'de JSON Dosyası Nasıl Düzenlenir

Çeşitli basketbol takımları hakkında bilgiler içeren my_teams.json adında bir JSON dosyamız olduğunu varsayalım.

Bu dosyanın içeriğini görüntülemek için aşağıdaki sözdizimini kullanabiliriz:

Get-Content my_teams.json

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

Dosyanın Konum alanında 'Dallas'a eşit olan tüm değerleri bulmak ve Ad alanındaki karşılık gelen değeri 'Mavs' olarak değiştirmek istediğimizi varsayalım. ' yerine.

Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:

$file = Get-Content my_teams.json -raw | ConvertFrom-Json
$file | % {if($_.Location -eq 'Dallas'){$_.Name='Mavs'}}
$file | ConvertTo-Json -depth 32 > new_teams.json

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

new_teams.json adlı yeni dosyanın içeriğini görüntülemek için Get-Content cmdlet'ini kullandığımızda, 'Mavericks'in 'Mavs' olarak yeniden adlandırıldığını görebildiğimize dikkat edin. dosyanın ilk Ad alanına.

Not: PowerShell'deki ConvertTo-Json cmdlet'inin tam belgelerini burada bulabilirsiniz.

İlgili makaleler