C#中的XML到JSON转换访问成员

时间:2012-03-30 13:16:21

标签: c# xml json json.net

我有一个像

这样的XML字符串
<Segment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Air">
   <carrier />
   ...
</Segment>

我使用JSON.NET将其转换为JSON,最终结果具有以下成员

@xmlns:xsi: "http://www.w3.org/2001/XMLSchema-instance"
@xsi:type: "Air"
carrier

在客户端,如何访问“Air”类型? Segment.@xsi:type显然是非法的。

1 个答案:

答案 0 :(得分:2)

我认为你在客户端使用Json.Net。

XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xstr);
string jsonText = JsonConvert.SerializeXmlNode(xDoc);


JObject jObj = (JObject)JsonConvert.DeserializeObject(jsonText);
string air = jObj["Segment"]["@xsi:type"].ToString();
//or
dynamic jObj = JsonConvert.DeserializeObject(jsonText);
string air = jObj.Segment["@xsi:type"];