从XML到JSON生成动态类

时间:2016-01-26 20:27:03

标签: json xml vb.net json.net

我想要实现的是将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)?

1 个答案:

答案 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