C# json 转 xml 字符串

栏目: ASP.NET · 发布时间: 6年前

内容简介:本文告诉大家如何将 json 转 xml 或将 xml 转 json 字符串首先需要安装 Newtonsoft.Json 库,打开 VisualStudio 2019 新建一个 dotnet core 项目,然后右击编译 csproj 输入下面的代码尝试创建一个类用来转换为 xml 请看代码

本文告诉大家如何将 json 转 xml 或将 xml 转 json 字符串

首先需要安装 Newtonsoft.Json 库,打开 VisualStudio 2019 新建一个 dotnet core 项目,然后右击编译 csproj 输入下面的代码

<ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
  </ItemGroup>

尝试创建一个类用来转换为 xml 请看代码

public class Foo
    {
        public string Name { get; set; }

        public string Blog { get; set; }
    }

将类转换为 xml 的代码

var foo = new Foo()
            {
                Name = "lindexi",
                Blog = "https://blog.csdn.net/lindexi_gd",
            };

            var xmlSerializer = new XmlSerializer(typeof(Foo));
            var str = new StringBuilder();

            xmlSerializer.Serialize(new StringWriter(str), foo);

            var xml = str.ToString();
            Console.WriteLine(xml);

现在运行就可以看到下面代码

<?xml version="1.0" encoding="utf-16"?>
<Foo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Name>lindexi</Name>
  <Blog>https://blog.csdn.net/lindexi_gd</Blog>
</Foo>

这里的 encoding 是 utf-16 因为 StringWriter 使用的是 Unicode 如果需要修改为 utf-8 需要修改代码,但是本文就不在这里说

xml 转 json 字符串

从 xml 转 json 需要将 xml 字符串创建 XmlDocument 才可以

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

通过下面代码就可以将 XmlDocument 转 json 字符串

string text = JsonConvert.SerializeXmlNode(doc);

运行代码可以看到转换的代码

{"?xml":{"@version":"1.0","@encoding":"utf-16"},"Foo":{"@xmlns:xsd":"http://www.w3.org/2001/XMLSchema","@xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","Name":"lindexi","Blog":"https://blog.csdn.net/lindexi_gd"}}

json 转 xml 字符串

在上面已经转换出 json 可以通过下面代码将 json 转 xml 字符串

doc = (XmlDocument) JsonConvert.DeserializeXmlNode(text);

如果需要将 doc 做字符串输出,可以使用 doc.InnerXml 转字符串

doc = (XmlDocument) JsonConvert.DeserializeXmlNode(text);
            Console.WriteLine("json转xml");
            Console.WriteLine(doc.InnerXml);

运行软件可以看到下面代码

<?xml version="1.0" encoding="utf-16"?><Foo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Name>lindexi</Name><Blog>https://blog.csdn.net/lindexi_gd</Blog></Foo>

下面是全部的代码

class Program
    {
        static void Main(string[] args)
        {
            var foo = new Foo()
            {
                Name = "lindexi",
                Blog = "https://blog.csdn.net/lindexi_gd",
            };

            var xmlSerializer = new XmlSerializer(typeof(Foo));
            var str = new StringBuilder();

            xmlSerializer.Serialize(new StringWriter(str), foo);

            var xml = str.ToString();
            Console.WriteLine(xml);

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

            string text = JsonConvert.SerializeXmlNode(doc);
            Console.WriteLine("转换json");
            Console.WriteLine(text);

            doc = (XmlDocument) JsonConvert.DeserializeXmlNode(text);
            Console.WriteLine("json转xml");
            Console.WriteLine(doc.InnerXml);

            Console.Read();
        }
    }

    public class Foo
    {
        public string Name { get; set; }

        public string Blog { get; set; }
    }

运行可以看到下面方法

<?xml version="1.0" encoding="utf-16"?>
<Foo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Name>lindexi</Name>
  <Blog>https://blog.csdn.net/lindexi_gd</Blog>
</Foo>
转换json
{"?xml":{"@version":"1.0","@encoding":"utf-16"},"Foo":{"@xmlns:xsd":"http://www.w3.org/2001/XMLSchema","@xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","Name":"lindexi","Blog":"https://blog.csdn.net/lindexi_gd"}}
json转xml
<?xml version="1.0" encoding="utf-16"?><Foo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Name>lindexi</Name><Blog>https://blog.csdn.net/lindexi_gd</Blog></Foo>

Converting between JSON and XML

代码 https://gitee.com/lindexi/lindexi_gd/tree/dev/LapouRairpaltearwou


以上所述就是小编给大家介绍的《C# json 转 xml 字符串》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Web Designer's Idea Book

The Web Designer's Idea Book

Patrick Mcneil / How / 2008-10-6 / USD 25.00

The Web Designer's Idea Book includes more than 700 websites arranged thematically, so you can find inspiration for layout, color, style and more. Author Patrick McNeil has cataloged more than 5,000 s......一起来看看 《The Web Designer's Idea Book》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换