VB.NET 从XML文件中读取内容到JSON
2016-12-30 21:24
441 查看
摘要: 注:本文中记录的只是一些早年练手用的代码,用于JSON和XML简单转换,使用的是自己定义的一个“规则”,不保证转换的正确性
一、关于本文
本文承接了上一篇博客的内容。在上篇博客中,通过函数WriteJsonToXml将一个JSON格式的文件写入了一个对应的XML文件中。本文中则给出了函数RecoverJsonFromXml的代码,可以将XML恢复成JSON格式的文本。
运行本文中代码的环境与上篇博客相同。
待读取的XML文档内容如下:
二、函数RecoverJsonFromXml
这两个函数被声明在类JsonXmlHelper中
三、调用示例
Main代码
四、运行结果
END
© 著作权归作者(北风其凉)所有
一、关于本文
本文承接了上一篇博客的内容。在上篇博客中,通过函数WriteJsonToXml将一个JSON格式的文件写入了一个对应的XML文件中。本文中则给出了函数RecoverJsonFromXml的代码,可以将XML恢复成JSON格式的文本。
运行本文中代码的环境与上篇博客相同。
待读取的XML文档内容如下:
<?xml version="1.0" encoding="gb2312"?> <!--这个XML文档中存储了一个JSON格式的信息--> <Root> <Name Type="String" Value="Tsybius" /> <Age Type="Integer" Value="23" /> <Sex_is_Male Type="Boolean" Value="True" /> <Partner Type="Object"> <Partner_Name Type="String" Value="Galatea" /> <Partner_Age Type="Integer" Value="21" /> <Partner_Sex_is_Male Type="Boolean" Value="False" /> </Partner> <Achievement Type="Array" Value0="ach1" Value1="ach2" Value2="ach3" /> </Root>
二、函数RecoverJsonFromXml
这两个函数被声明在类JsonXmlHelper中
''' <summary> ''' 将XML格式的内容存储到JSON格式的字符串中 ''' </summary> ''' <param name="address">要读取的XML文件地址</param> ''' <remarks></remarks> Public Shared Function RecoverJsonFromXml(address As String) As String Dim xmlDoc = New XmlDocument xmlDoc.Load(address) Dim xmlRoot As XmlNode = xmlDoc.SelectSingleNode("Root") Dim jtemp As JObject = WriteToJson(xmlRoot) Return JsonConvert.SerializeObject(jtemp, Newtonsoft.Json.Formatting.Indented) End Function ''' <summary> ''' 中XmlNode类型中读取一个JObject类型数据的信息 ''' </summary> ''' <param name="xNode">XML结点类型数据</param> ''' <returns>JObject类型数据</returns> ''' <remarks></remarks> Private Shared Function WriteToJson(xNode As XmlNode) As JObject Dim jobj As New JObject For Each obj As Object In xNode.ChildNodes If obj.GetType.ToString = "System.Xml.XmlElement" Then '读取到XML结点 Dim xElmt As XmlElement = obj Select Case xElmt.GetAttribute("Type") Case "String" '字符串型变量 jobj.Add(xElmt.Name, xElmt.GetAttribute("Value")) Case "Integer" '整型变量 jobj.Add(xElmt.Name, Integer.Parse(xElmt.GetAttribute("Value"))) Case "Float" '浮点型变量 jobj.Add(xElmt.Name, Double.Parse(xElmt.GetAttribute("Value"))) Case "Boolean" '布尔型变量 jobj.Add(xElmt.Name, IIf(xElmt.GetAttribute("Value") = "True", New JValue(True), New JValue(False))) Case "Array" 'JSON数组 Dim jarr As JArray = New JArray() For i As Integer = 0 To xElmt.Attributes.Count - 2 jarr.Add(New JValue(xElmt.GetAttribute("Value" & i.ToString))) Next jobj.Add(xElmt.Name, jarr) Case "Object" 'JSON对象 jobj.Add(xElmt.Name, WriteToJson(obj)) End Select ElseIf obj.GetType.ToString = "System.Xml.XmlComment" Then '读取到注释 Continue For Else '其他情况 Continue For End If Next Return jobj End Function
三、调用示例
Main代码
Sub Main() Dim sJson As String = JsonXmlHelper.RecoverJsonFromXml("x.xml") Console.WriteLine(sJson) Console.ReadLine() End Sub
四、运行结果
END
© 著作权归作者(北风其凉)所有
相关文章推荐
- vb.net读取xml文件中的节点内容
- 如何用VB.net快速读取较大的xml文件
- vb.net 读取XML配置文件
- asp.net 读取xml文件里面的内容,绑定到dropdownlist中
- VB.NET 读取写入XML文件
- asp.net 上传XML,txt 直接读取文件内容
- [VB.NET]vb.net如何读取数据库生成指定格式的xml文件
- VB.NET 打开Excel文件,读取Excel内容,添加到DataGridView中并显示
- vb.net程序直接读取Excel文件内容
- VB.NET 打开Excel文件,读取Excel内容,添加到DataGridView中并显示
- Asp.Net 读取xml文件中Key的值,并且过滤掉注释内容代码
- asp.net读取xml文件相关内容
- HOW TO:使用 Visual C# .NET 从文件中读取 XML
- VB.NET中读取INI文件设置信息函数sdGetIniInfo
- ASP.NET中读取XML文件信息的4种方法与示例代码
- 使用.NET读取XML文件,.net开发,.net,ASP.NET
- 一个读取xml文件内容的类
- 在asp.net中读取XML文件信息的4种方法
- 在asp.net中读取XML文件信息的4种方法