C# XML与Json之间相互转换实例详解

 更新时间:2013年11月22日 11:25:59   投稿:zxhpj  
这篇文章主要介绍了C# XML与Json之间相互转换实例详解,大家参考使用吧

对于这转换其实很简单,其中最重要的就是先要引用类库。可以到官网进行下载引用http://json.codeplex.com。

XML转换为Json字符串  

复制代码 代码如下:

string xml = @"<?xml version=""1.0"" standalone=""no""?>
                            <root>
                              <person id=""1"">
                              <name>Alan</name>
                              <url>https://www.jb51.net</url>
                              </person>
                              <person id=""2"">
                              <name>Louis</name>
                              <url>https://www.jb51.net</url>
                              </person>
                            </root>";

这是在代码中预定义的一个xml字符串。

复制代码 代码如下:

mlDocument doc = new XmlDocument();
            doc.LoadXml(xml);

然后将xml字符串读入到XML文档。

复制代码 代码如下:

string jsonText = JsonConvert.SerializeXmlNode(doc);
            Console.WriteLine(jsonText);

然后通过Json.Net类库中专有的方法进行转换即可

运行结果为:

Json字符串转换为XML

第一种格式的Json字符串

复制代码 代码如下:

string json = @"{
                              ""?xml"": {
                                ""@version"": ""1.0"",
                                ""@standalone"": ""no""
                              },
                              ""root"": {
                                ""person"": [
                                  {
                                    ""@id"": ""1"",
                                    ""name"": ""Alan"",
                                    ""url"": ""http://www.google.com""
                                  },
                                  {
                                    ""@id"": ""2"",
                                    ""name"": ""Louis"",
                                    ""url"": ""http://www.yahoo.com""
                                  }
                                ]
                              }
                            }";

预定义的Json字符串如上

同理调用Json.Net类库中的方法

复制代码 代码如下:

 XmlDocument doc1 = JsonConvert.DeserializeXmlNode(json);
Console.WriteLine(doc1.OuterXml);

第二种格式的Json字符串

复制代码 代码如下:

string json_str = "{\"a\":\"a\",\"b\":\"b\"}";
            string json1 = @"{
              ""?xml"": {
                ""@version"": ""1.0"",
                ""@standalone"": ""no""
              },
                ""root"":" + json_str + "}";

同理进行调用

复制代码 代码如下:

XmlDocument doc2 = JsonConvert.DeserializeXmlNode(json1);
Console.WriteLine(doc2.OuterXml);

调用很简单,只要将传递的XML或者Json字符串格式搞正确,那么得到想要的结果就不难。代码可以直接Copy调用。

PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具:

http://tools.jb51.net/code/json_yasuo_trans

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

相关文章

  • C# 如何使用OpcUaHelper读写OPC服务器

    C# 如何使用OpcUaHelper读写OPC服务器

    这篇文章给大家介绍C# 如何使用OpcUaHelper读写OPC服务器,本文通过图文实例代码相结合给大家介绍的非常详细,需要的朋友参考下吧
    2023-12-12
  • C#中string.format用法详解

    C#中string.format用法详解

    这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • 全面解读C#编程中的析构函数用法

    全面解读C#编程中的析构函数用法

    这篇文章主要介绍了C#编程中的析构函数用法,文中最后还整理了析构函数与Dispose()方法的区别,需要的朋友可以参考下
    2016-01-01
  • C# 获取属性名的方法

    C# 获取属性名的方法

    C# 获取属性名的方法实例,需要的朋友可以参考一下
    2013-03-03
  • c# 获取CookieContainer的所有cookies函数代码

    c# 获取CookieContainer的所有cookies函数代码

    这篇文章主要介绍了c# 获取CookieContainer所有cookies的函数代码,需要的朋友可以参考下
    2013-06-06
  • 浅谈C#数组(一)

    浅谈C#数组(一)

    本篇文章小编要得大家介绍的是C#数组,数组是一种数据结构,它可以包含同一个类型的多个元素,如果需要使用同一类型的多个对象,可以使用数组和集合,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • 如何用C#获取计算机详细的软件和硬件信息

    如何用C#获取计算机详细的软件和硬件信息

    我们应该都知道System.Management提供的类可以用于读取本地计算机设备的各种数据,下面这篇文章主要给大家介绍了关于如何用C#获取计算机详细的软件和硬件信息的相关资料,需要的朋友可以参考下
    2022-12-12
  • c# 并行和多线程编程——认识Parallel

    c# 并行和多线程编程——认识Parallel

    这篇文章主要介绍了c# 并行和多线程编程的相关资料,帮助大家更好的理解和学习c# Parallel的相关知识,感兴趣的朋友可以了解下
    2021-02-02
  • Unity3D实现射线使物体移动

    Unity3D实现射线使物体移动

    这篇文章主要为大家详细介绍了Unity3D实现射线使物体移动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • c# 基于wpf,开发OFD电子文档阅读器

    c# 基于wpf,开发OFD电子文档阅读器

    这篇文章主要介绍了c# 如何基于wpf,开发OFD电子文档阅读器,帮助大家更好的理解和学习使用c#的wpf技术,感兴趣的朋友可以了解下
    2021-03-03

最新评论