Powershell:如何在Json和XML对象中更新/替换数据和值

所以我在这里有一个问题,我似乎无法弄清楚如何更新对象中的数据值

因此,例如说FOLLOWING json

{

"People": 263,

"Hungry": true,

"Fruits": {

"Apples": 1 "Oranges": 2

},

"Places": {

"Places": [{

"Baskets": "true",

"name": "Room 1",

"candycount": 1500,

"candytypespresent": {

"candies": [

"caramel"

]

}

},

{

"Baskets": "false",

"name": "Room 2",

"candycount": 2000,

"candytypespresent": {

"candies": [

"caramel",

"jawbreaker",

"butterscotch"

]

}

}

]

}

}

我让Powershell顺利阅读 convertfrom-json

A)将“橙色”从“ 2”更改为“ 100”

B)第2会议室中的“篮子”从“假”到“真”

C)在“房间1”的“糖果”中添加“泡泡糖”

回答:

JSON成为带有嵌套对象的自定义对象,因此实际上非常简单。首先,让我们通过在Apples值后面添加逗号来修复JSON,然后将其转换为对象…

$JSON = @'

{

"People": 263,

"Hungry": true,

"Fruits": {

"Apples": 1,

"Oranges": 2

},

"Places": {

"Places": [

{

"Baskets": "true",

"name": "Room 1",

"candycount": 1500,

"candytypespresent": {

"candies": [

"caramel"

]

}

},

{

"Baskets": "false",

"name": "Room 2",

"candycount": 2000,

"candytypespresent": {

"candies": [

"caramel",

"jawbreaker",

"butterscotch"

]

}

}

]

}

}

'@ | ConvertFrom-JSON

然后,如果我们要将Oranges从2更新为100,我们只需更改值即可:

$JSON.Fruits.Oragnes = 100

类似地,我们可以通过简单地列出场所,将其传递给Where语句以获取正确的房间并修改其值来修改Room 2 ForEach

$JSON.Places.Places | Where{$_.name -eq 'Room 2'} | ForEach{$_.Baskets = 'true'}

最后,由于candies在JSON中定义为数组,因此我们可以简单地将所需的糖果添加到数组中。

$JSON.Places.Places | Where{$_.name -eq 'Room 1'} | ForEach{$_.CandyTypesPresent.candies += 'bubblegum'}

以上是 Powershell:如何在Json和XML对象中更新/替换数据和值 的全部内容, 来源链接: utcz.com/qa/410843.html

回到顶部