Как удалить объект из JSON в ArrayList - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть JSON, который содержит 3 объекта в ключ => значение.Этот JSON обернут в массив.Итак, теперь у меня есть массив, который состоит из объектов JSON.

То, что я пытаюсь сделать здесь, это удалить один из объектов JSON (не полный элемент JSON) из массива.

Есть идеи, которые нужно сделать?

Образец JSON:

{
 'd_id' => '1',
 'name' => 'abc',
 'mapping' => 'xyz'
}

Образец массива

A = [{
 'd_id' => '1',
 'name' => 'abc',
 'mapping' => 'xyz'
},
{
 'd_id' => '2',
 'name' => 'abc',
 'mapping' => 'xyz'
},
{
 'd_id' => '3',
 'name' => 'abc',
 'mapping' => 'xyz'
}]

Вот что я пробовал:

  1. Использовал ArrayList вместо Array, чтобы получитьтребуемый вывод.
  2. Используется «Удалить» для очистки элемента в ArrayList.

код powershell:

$j_res = new-object collections.generic.list[object]

For ($i = 0; $i -lt 5; $i++){
$ret = ConvertFrom-Json "{}"
$ret | Add-Member -Name 'D_Id' -Value $i -MemberType NoteProperty
$ret | Add-Member -Name 'Name' -Value 'axz' -MemberType NoteProperty
$ret | Add-Member -Name 'Mapping' -Value 'byz' -MemberType NoteProperty
$j_res.Add($ret)
}
$j_res.Remove($j_res[0].Mapping)
Write-Host 'The  is required output is' $j_res

Ожидается:

A = [{
 'd_id' => '1',
 'name' => 'abc'
},
{
 'd_id' => '2',
 'name' => 'abc'
},
{
 'd_id' => '3',
 'name' => 'abc'
}]

Фактически:

A = [{
 'd_id' => '1',
 'name' => 'abc',
 'mapping' => 'xyz'
},
{
 'd_id' => '2',
 'name' => 'abc',
 'mapping' => 'xyz'
},
{
 'd_id' => '3',
 'name' => 'abc',
 'mapping' => 'xyz'
}]

1 Ответ

0 голосов
/ 02 апреля 2019

Вы пытаетесь удалить элемент из массива / списка, но вы должны посмотреть на удаление свойства объекта PSObject внутри массива.

$tmp = ConvertFrom-Json "[{`"id`" : 1,`"mapping`" : `"val`"},{`"id`" : 2,`"mapping`" : `"val`"},{`"id`" : 3,`"mapping`" : `"val`"}]"
foreach ($i in $tmp){
    $i.PSObject.Members.Remove("mapping")
}

ConvertTo-Json -InputObject $ tmp -Depth 2 |Write-Host

Вывод:

{
  "value": [
    {
      "id":  1
    }, {
      "id":  2
    }, {
      "id":  3
    }
  ],
  "Count": 3
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...