【发布时间】:2016-05-03 13:47:43
【问题描述】:
我想要实现的是将 XML 转换为 JSON 对象。目前我正在这样做:
Public Class Person
Public Property Name As String
' other properties here'
End Class
Dim doc As XmlDocument
doc.LoadXml(arg_strXml)
Dim jsonValue As String = JsonConvert.SerializeXmlNode(doc)
Dim jsonObject = JsonConvert.DeserializeObject(Of Person)(jsonValue)
Dim firstName As String = jsonObject.Name
但是问题在于检索到的 XML,因此反序列化的 JSON 对象具有不同的字段/属性/元素,具体取决于正确的函数。为每个可能的 XML 创建一个类将是一场噩梦。
有没有办法不必为每个反序列化创建一个特定的类(在这种情况下为 Person)?
【问题讨论】:
-
是的。解析它而不是反序列化它。
-
只是出于好奇,为什么要将其转换为 JSON 而不是仅使用 XML? LINQ to XML 在 VB.NET 中相当不错。
-
主要是为了性能,在我们使用GetPropertyValue(Of String)("NodeName")之前。 Linq to XML 有什么帮助?
-
试试这个
Dim doc As XmlDocument = new XmlDocument() doc.LoadXml(arg_strXml) Dim jsonValue As String = JsonConvert.SerializeObject(doc) -
Hackerman 如何在您的示例中从 jsonValue 获取值/属性?