c# - 将 XML 转换为动态 C# 对象

我使用以下 C# 代码通过 JSON.Net 框架将 JSON 数据字符串转换为动态对象:

// Creates a dynamic .Net object representing the JSON data
var ProductDB = JsonConvert.DeserializeObject<dynamic>(JsonData);

转换后,我可以使用如下代码直接访问元素:

// Variables to be used
string ProductID;
string ProductType;
int ProductQty;

// Loop through each of the products
foreach (dynamic product in ProductDB.products)
{
    ProductID = product.id;
    ProductType = product.type;
    ProductQty = product.qty;
}

在处理 XML 数据时有什么类似的东西吗?我可以使用 JSON.net 将我的 XML 转换为 JSON,然后重新使用上面的代码,但这感觉像是在作弊。

谢谢。

最佳答案

XDocument doc = XDocument.Parse(xmlData); //or XDocument.Load(path)
string jsonText = JsonConvert.SerializeXNode(doc);
dynamic dyn = JsonConvert.DeserializeObject<ExpandoObject>(jsonText);

我认为“作弊”是答案 - xml 解决方案很长 :)

https://stackoverflow.com/questions/13171525/

相关文章:

java - 忽略 Jackson 序列化的特定字段

python - 将包含多行 JSON 的文件加载到 Pandas 中

ruby-on-rails - ActiveRecord 使用 JSON 而不是 YAML 进行序列

java - 由于输入结束 jackson 解析器,没有要映射的内容

javascript - 在Javascript中将JSON字符串转换为JSON对象数组

JSON 值 1 或 0 - int 或 boolean

json - REST:使用一个请求更新多个资源 - 它是标准的还是应该避免的?

c# - 将 JSON 数据发布到 ASP.NET MVC

java - 与 Jackson 映射时将默认值设置为空字段

python - 使用常规编码器使对象 JSON 可序列化