您的位置:首页 > 编程语言 > ASP

asp.net XML转JSON

2012-04-10 10:00 267 查看
先用Linq查询XML节点,再转换成List或Model,再用Json.NET转为Json

好处是可以随时返回List

XML

<?xml version="1.0" encoding="utf-8" ?>
<Users>
<User ID="111111">
<name>EricSun</name>
<password>123456</password>
<description>Hello I'm from Dalian</description>
</User>
<User ID="222222">
<name>Ray</name>
<password>654321</password>
<description>Hello I'm from Jilin</description>
</User>
</Users>


C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using Newtonsoft.Json;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<User> list = new List<User>();
List<User> list2 = new List<User>();

XElement rootNode = XElement.Load(@"D:\234.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 = JsonConvert.SerializeObject(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 = JsonConvert.SerializeObject(list2);

Console.ReadKey();
}
}

public class User
{
public string name { get; set; }

public string password { get; set; }

public string description { get; set; }
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: