asp.net XML轉JSON

來源:互聯網
上載者:User

先用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; }    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.