生成从 XML 到 JSON 的动态类



我试图实现的是将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 字符串反序列化/解析为 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

相关内容

  • 没有找到相关文章

最新更新