簡體   English   中英

使用PowerShell中的CSV數據修改JSON文件

[英]Modifying JSON file using data from CSV in PowerShell

我正在嘗試根據.csv文件中的兩列修改.json文件中的某些特定值。 如果.json文件中的當前值與左列中的當前值相同,我想將其更改為右列中的值。

這是我第一次使用PowerShell,所以我很難弄清楚如何去做。 我覺得我的解決方案不僅錯誤,而且在可能不需要時使用雙循環。 這是我到目前為止所擁有的。

$jsonData = Get-Content -Path $jsonFile | ConvertFrom-Json
$csvData = Get-Content -Path $csvFile | Select-Object -Skip 1 # Skipping the header

foreach ($jsonItem in $jsonData.'Placeable List') {
    foreach ($csvRow in $csvData) {
        $splitRow = $csvRow -split ","
        $lCol = $splitRow[0]
        $rCol = $splitRow[1]

        $currentItem = $jsonItem.'value'.'Appearance'.'value'
        if ($currentItem -eq $lCol) {
            $currentItem -eq $rCol
        }
    }
}

我設法搞清楚了。

$csvData  = Get-Content -Path $csvFile | Select-Object -Skip 1 # Skipping the header
$jsonData = Get-Content -Path $jsonFile -raw | ConvertFrom-Json

foreach($csvRow in $csvData) {
    $splitRow = $csvRow -split ","
    $lCol = $splitRow[0]
    $rCol = $splitRow[1]

    foreach($item in $jsonData.'Placeable List'.value) {
        $item.Appearance | % {
            if ($_.value -eq $lCol) {
                $_.value = $rCol
            }
        }
    }
}

$jsonData | ConvertTo-Json -depth 32 | Set-Content $jsonFile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM