我想要实现的是将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)?
答案 0 :(得分:0)
您可以将JSON字符串反序列化/解析为Newtonsoft的JObject
。然后,您可以访问Dictionary(Of String, String)
等属性,例如:
Dim arg_strXml = "<Person><Name>foo</Name></Person>"
Dim doc = New XmlDocument()
doc.LoadXml(arg_strXml)
Dim jsonValue = JsonConvert.SerializeXmlNode(doc)
Dim jsonObject = JObject.Parse(jsonValue)
Console.WriteLine(jsonObject("Person")("Name"))
<强> dotnetfiddle demo
强>
输出
foo