当前位置: 首页 > 面试题库 >

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

岳志义
2023-03-14
问题内容

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

因此,例如说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或对象的情况下更新它


问题答案:

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'}


 类似资料:
  • 问题内容: 我有一个像这样的JSON对象: 我为特定的“ id”提供了“名称”的新值。如何在任何对象内替换特定“ id”的“名称”? 以及如何计算所有对象之间的组总数? 例如:将名称替换为“ test grp45”,ID =“ test1” 这是小提琴 http://jsfiddle.net/qLTB7/21/ 问题答案: 以下函数将搜索对象及其所有子对象/数组,并将键替换为新值。它会在全球范围内

  • 问题内容: 我的apicontroller返回了以下JSON对象: 我要替换为 我已经尝试了下面的代码,但它仅代替的第一次出现。如何替换所有条目? 谢谢, 问题答案: 您需要使替换全局: 这样,它将继续替换null直到到达结尾 正则表达式文档: https://developer.mozilla.org/zh- CN/docs/Web/JavaScript/Reference/Global_Obj

  • 我创建了以下主题、流和表: 为以上创建的主题创建表和流。 我可以看到以下数据: 我的问题: 现在我要将addressId 1(Fremont)替换为addressId 1(Detroit)。我怎么能那样做? 我还尝试打印输入到控制台的流,如票证中所述 是否将Kafka流输入打印到控制台? 只是,我可以看到下面的输出: 12:04:42.145[StreamThread-1]DEBUG org.ap

  • 我有下一个代码: 我还有一些按钮,可以从表中删除元素并对其进行更新。但是我如何更新这个表呢?哪些参数应该在更新中?我尝试了更新=“:tableForm”和更新=“:tableTabView:tableForm”和更新=“:tableTabView”,但没有得到结果。我哪里错了?

  • 问题内容: JSON.NET框架可以将XML转换为JSON,但是它使用JSON中的@符号作为属性。我宁愿在将其发送到视图之前将其删除。最好的方法是什么? 我知道我可以直接进行替换,但是@字符可能与某个地方相关,因此不应替换。有正则表达式吗? 问题答案: 我花了很长时间才找到正确的答案,所以我想分享一下: 输出:

  • 问题内容: 我有一个XML字符串,如下所示: 是否可以将XML转换为JSON? 问题答案: 您也可以尝试这种方式。我已经尝试和测试过了。 步骤1:请下载java-json.jar 步骤2:将其添加到项目的文件夹,然后添加到构建路径。 步骤3:然后按以下方式使用 进口寻找 样品串 杰森·斯特林 输出: XML: JSON: