もっと簡単な方法があるのだろうかと思います。私は2つの(JSON)オブジェクトを持っています。そこにはIPのリスト(プロパティは個々のIPです)のプロパティがあります。 2つのオブジェクトのプロパティを比較して一致するアイテムを見つけ、最初のオブジェクト($JSONConverted
)から一致するものをすべて削除します。私は(私はまだ働いていない)削除機能を使用することができると信じています。私は本当にこれを達成するためのより簡単な方法があるのだろうかと思っています。ここでCompare-Object一致を見つけて最初のオブジェクトから見つかった削除を削除
$JSONConverted = Get-Content -Raw -Path Output.json | ConvertFrom-Json
$FWJSONConverted = Get-Content -Raw -Path FWOutput.json | ConvertFrom-Json
$MatchingIPs = Compare-Object -IncludeEqual -ExcludeDifferent -ReferenceObject $FWJSONConverted.data.value -DifferenceObject $JSONConverted.data.value
$ListOfMatchingIPs = $MatchingIPs.InputObject
$JSONConverted.data.value | ForEach-Object {
foreach ($IP in $ListOfMatchingIPs) {
if ($_ -eq $IP) {
$JSONConverted.remove.($_)
}
}
}
は$JSONConverted
データの例を示します。このような
{
"number_of_elements": 1134,
"timeout_type": "LAST",
"name": "IP List",
"data": [
{
"last_seen": 1486571563476,
"source": "WORD: WORDS",
"value": "10.10.10.10",
"first_seen": 1486397213696
},
{
"last_seen": 1486736205285,
"source": "WORD: WORDS",
"value": "10.17.24.22",
"first_seen": 1486397813280
},
{
"last_seen": 1486637743793,
"source": "WORD: WORDS",
"value": "10.11.10.10",
"first_seen": 1486398713056
}
],
"creation_time": 1486394698941,
"time_to_live": "1 years 0 mons 3 days 0 hours 0 mins 0.00 secs",
"element_type":"IP"
}
ドゥ拡張子が.xmlのファイルにJSONコードがある理由を知りたいのですが? –
修正済みです。その延長は、私が達成しようとしてきたことに対して、少なくとも私が知っている限り、何の違いもありませんでした。 – MrMr
技術的には違いはありません。それでも、Windowsは、不一致の拡張子を使用して拡張子を使用してファイルハンドラを関連付けるので、ややこしいです。それで、入力データは実際にどのように見えますか?また、 '$ JSONConverted.remove。($ _)'が実際に何かを削除するのではないかと疑います。 –