gpt4 book ai didi

c# - 将 JSON 数组转换为 XML

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

我正在尝试将 JSON 转换为 XML。我的 JSON 包含一组汽车,每辆汽车都有一组特征:

[
{
"car": {
"features": [{
"code": "1"
}, {
"code": "2"
}]
}
},
{
"car": {
"features": [{
"code": "3"
}, {
"code": "2"
}]
}
}
]

我正在将其转换为 XML:

// the tag name for each top level element in the json array
var wrappedDocument = string.Format("{{ car: {0} }}", jsonResult);
// set the root tag name
return JsonConvert.DeserializeXmlNode(wrappedDocument, "cars");

这是生成的 XML:

<cars>
<car>
<features>
<code>1</code>
</features>
<features>
<code>2</code>
</features>
</car>
<car>
<features>
<code>3</code>
</features>
<features>
<code>2</code>
</features>
</car>
</cars>

我的问题是我想将所有“功能”列在一个公共(public)元素下,就像“汽车”列在“汽车”下一样,这样 XML 将如下所示:

<cars>
<car>
<features>
<feature>
<code>1</code>
</feature>
<feature>
<code>2</code>
</feature>
</features>
</car>
<car>
<features>
<feature>
<code>3</code>
</feature>
<feature>
<code>2</code>
</feature>
</features>
</car>
</cars>

这可能使用 Newtonsoft Json.NET 吗?感谢您的帮助!

最佳答案

DeserializeXmlNode() 实际上没有办法自定义它执行 JSON 到 XML 转换的方式。要使用该方法获得所需的结果,您必须在将 JSON 转换为 XML 之前操作它,或者在之后操作 XML。

在这种情况下,我认为使用 Json.Net 的 LINQ-to-JSON API 可能更容易以您想要的形状直接从 JSON 构建 XML。你可以这样做:

var ja = JArray.Parse(jsonResult);
var xml = new XDocument(
new XElement("cars",
ja.Select(c =>
new XElement("car",
new XElement("features",
c["car"]["features"].Select(f =>
new XElement("feature",
new XElement("code", (string)f["code"])
)
)
)
)
)
)
);

Console.WriteLine(xml.ToString());

fiddle :https://dotnetfiddle.net/fxxQnL

关于c# - 将 JSON 数组转换为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36060539/

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