gpt4 book ai didi

json - 如何将 XML 分组为 JSON

转载 作者:数据小太阳 更新时间:2023-10-29 02:39:39 25 4
gpt4 key购买 nike

我有一个这种格式的 XML 文档

<rss>
<channel>
<item>
<id>1</id>
<image>img_32.jpeg</image>
</item>
<item>
<id>2</id>
<image>img_42.jpeg</image>
</item>
<item>
<id>1</id>
<image>img_52.jpeg</image>
</item>
<item>
<id>3</id>
<image>img_62.jpeg</image>
</item>
<item>
<id>4</id>
<image>img_72.jpeg</image>
</item>
</channel>
</rss>

我在 ID 节点上对这些数据进行分组,这样我就可以为每个 ID 获取列表中的所有图像。

[xml]$xml = (New-Object System.Net.WebClient).DownloadString("https://myfeedurl.xml")
$grouped = $xml.rss.channel.item | Group id
$grouped

返回

Count Name        Group----- ----        -----    2 1           {item}{item}    1 2           {item}    1 3           {item}    1 4           {item}

But I can't figure how use this grouped information using ConvertTo-Json in order to end up with JSON in this format.

[
{
"id": "1",
"images": [
{
"image": "img_32.jpeg"
},
{
"image": "img_52.jpeg"
}
]
},
{
"id": "2",
"images": [
{
"image": "img_42.jpeg"
}
]
},
etc...
]

最佳答案

我只能通过遍历节点并构建一些自定义对象来实现它。需要自定义对象才能按照您想要的方式命名标签。可能有一种更优雅的迭代/检查方法,但这行得通。

[xml]$xml = "<rss>
<channel>
<item>
<id>1</id>
<image>img_32.jpeg</image>
</item>
<item>
<id>2</id>
<image>img_42.jpeg</image>
</item>
<item>
<id>1</id>
<image>img_52.jpeg</image>
</item>
<item>
<id>3</id>
<image>img_62.jpeg</image>
</item>
<item>
<id>4</id>
<image>img_72.jpeg</image>
</item>
</channel>
</rss>"

$ht = @{}
$xml.rss.channel.item | Foreach {
$obj = New-Object psobject
$obj | Add-Member NoteProperty -Name 'id' -Value $_.id
$img = New-Object psobject
$img | Add-Member NoteProperty -Name 'image' -Value $_.image
$imgarr = @($img)
if ($ht.ContainsKey($_.id))
{
$imgarr += $ht[$_.id].images # + $img
}
$obj | Add-Member NoteProperty -Name 'images' -Value $imgarr
$ht[$_.id] = $obj
}

ConvertTo-Json $ht.Values -Depth 3

输出:

[
{
"id": "2",
"images": [
{
"image": "img_42.jpeg"
}
]
},
{
"id": "4",
"images": [
{
"image": "img_72.jpeg"
}
]
},
{
"id": "1",
"images": [
{
"image": "img_52.jpeg"
},
{
"image": "img_32.jpeg"
}
]
},
{
"id": "3",
"images": [
{
"image": "img_62.jpeg"
}
]
}
]

关于json - 如何将 XML 分组为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com