你有两种可能性。
方法1. XSD工具
假设你的XML文件位于此位置C:\path\to\xml\file.xml
1.打开Developer Command Prompt,您可以在开始菜单中找到它:Microsoft Visual Studio 2012>Visual Studio工具。如果您使用Windows 8,则可以在“开始屏幕”中直接输入“Developer Command Prompt”。
2.通过键入cd /D "C:\path\to\xml"更改位置到您的XML文件目录。
3.通过键入xsd file.xml从xml文件创建XSD文件。
4.通过键入xsd /c file.xsd创建C#类。
就这样!您已经从xml文件生成了C#类,存储在C:\path\to\xml\file.cs中。
方法2-特殊粘贴
需要Visual Studio 2012或更高版本。
1.将您的XML文件内容复制到剪贴板中。
2.向解决方案添加新的空类文件(Shift + Alt + C)。
3.打开该文件并单击菜单中的Edit>Paste special>Paste XML As Classes。
就这样!
用法
使用这个帮助类非常简单:
using System;
using System.IO;
using System.Web.Script.Serialization;
using System.Xml;
using System.Xml.Serialization;
namespace Helpers
{
internal static class ParseHelpers
{
private static JavaScriptSerializer json;
private static JavaScriptSerializer JSON { get { return json ?? (json = new JavaScriptSerializer()); } }
public static Stream ToStream(this string @this)
{
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(@this);
writer.Flush();
stream.Position = 0;
return stream;
}
public static T ParseXML<T>(this string @this) where T : class
{
var reader = XmlReader.Create(@this.Trim().ToStream(), new XmlReaderSettings() { ConformanceLevel = ConformanceLevel.Document });
return new XmlSerializer(typeof(T)).Deserialize(reader) as T;
}
public static T ParseJSON<T>(this string @this) where T : class
{
return JSON.Deserialize<T>(@this.Trim());
}
}
}
现在你需要做的就是:
public class JSONRoot
{
public catalog catalog { get; set; }
}
string xml = File.ReadAllText(@"C:\path\to\xml\file.xml");
var catalog1 = xml.ParseXML<catalog>();
string json = File.ReadAllText(@"C:\path\to\json\file.json");
var catalog2 = json.ParseJSON<JSONRoot>();
这里有一些在线的XML <--> JSON
转换器:点击这里