gpt4 book ai didi

c# - 使用复杂的 XML 数据将 XML 转换为 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:44 27 4
gpt4 key购买 nike

我有这样一个 XML:

       <job>
<properties>
<name>jobid</name>
<value>81963</value>
</properties>
<properties>
<name>status</name>
<value>complete</value>
</properties>
<properties>
<name>date</name>
<value>2018-07-30</value>
</properties>
</job>
<job>
<properties>
<name>jobid</name>
<value>81194</value>
</properties>
<properties>
<name>status</name>
<value>complete</value>
</properties>
<properties>
<name>date</name>
<value>2018-07-30</value>
</properties>
</job>

我需要做的是获取每个作业的所有属性。我很难遍历它的节点和子节点,但无法得到它的确切逻辑。我真正需要做的是将这些数据转换成类似的东西:

[{
"jobid": "81963",
"status": "complete",
"date": "2018-07-30"
},
{
"jobid": "81194",
"status": "complete",
"date": "2018-07-30"
}]

我已经试过了:

foreach (XmlNode child in xn.SelectNodes("properties"))
{
arrd.Add(checkNullValue(child["value"]));
}
arrd2.AddRange(arrd);

//For Converting to JSON
try
{
var jobVals = getXmlData("test", "testuser2", "654321", "Sources/soapRequest.xml");
Response.Write(jobVals.Count);

//JSONIZE list(the XML)
string json = JsonConvert.SerializeObject(jobVals);
Response.Write(json);
}
catch (Exception ex)
{
Response.Write(ex);
}

请帮助。

最佳答案

使用 Linq to XML

XDocument xml = //...

var result = xml.Elements("job")
.Select(job => job
.Elements("properties")
.ToDictionary(p => p.Element("name").Value, p => p.Element("value").Value)
);

result 将包含一个字典集合,当序列化时,

string json = JsonConvert.SerializeObject(result);

使用 Json.Net 之类的东西将产生所需的结果。

上面的示例不包括任何验证检查,但可以轻松添加。该示例只是为了展示如何将数据转换为所需的模型。

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

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