.Net实现XML数据转JSON格式
用Linq查询XML节点,再转换成List或Model,
再用JsonHelper转换为Json格式
这样做可以随时返回List,操作方便快捷
JsonHelper帮助类 一键转换Json点击下载
XML数据:
<?xml version="1.0" encoding="utf-8" ?> <Users> <User ID="1"> <name>yunjson.com</name> <password>123458</password> <description>son在线工具欢迎你</description> </User> <User ID="2"> <name>www.yunjson.com</name> <password>123458</password> <description>Json在线工具欢迎你</description> </User> </Users>
C#转换代码:
using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; using Newtonsoft.Json; namespace ConsoleApplication1 { class yunjson.com { static void Main(string[] args) { List<User> list = new List<User>(); List<User> list2 = new List<User>(); XElement rootNode = XElement.Load(@"D:\test.xml"); //第一种查询 var mynode = (from r in rootNode.Descendants("User") select r).ToList(); foreach (var item in mynode) { User model = new User(); model.name = item.Element("name").Value; model.password = item.Element("password").Value; model.description = item.Element("description").Value; list.Add(model); } //第一种查询结束 //转换为JSON string json = JsonHelper.json(list); //第二种查询 var mynode2 = from r2 in rootNode.Descendants("User") select new { Name = r2.Element("name").Value, Password = r2.Element("password").Value, Description = r2.Element("description").Value }; foreach (var item in mynode2) { User model = new User(); model.name = item.Name; model.password = item.Password; model.description = item.Description; list2.Add(model); } //第二种查询结束 //转换为JSON string json2 = JsonHelper.json(list2); Console.ReadKey(); } } public class User { public string name { get; set; } public string password { get; set; } public string description { get; set; } } }