开发者社区> 天伟> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

asp.net XML转JSON

简介: 先用Linq查询XML节点,再转换成List或Model,再用Json.NET转为Json 好处是可以随时返回List XML EricSun 123456 Hello I'm from Dalian ...
+关注继续查看

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Asp.net+Xml+js实现无线级下拉菜单
地址如下:http://xucanzhao.cnblogs.com/archive/2005/09/01/228012.htmlAsp.net+Xml+js实现无线级下拉菜单
448 0
ASP.NET Core : 一. 概述
ASP.NET Core : 一. 概述
0 0
ASP.NET MVC (五、HttpClient接口解析)(6)
ASP.NET MVC (五、HttpClient接口解析)(6)
0 0
ASP.NET MVC (五、HttpClient接口解析)(5)
ASP.NET MVC (五、HttpClient接口解析)(5)
0 0
ASP.NET MVC (五、HttpClient接口解析)(4)
ASP.NET MVC (五、HttpClient接口解析)(4)
0 0
ASP.NET MVC (五、HttpClient接口解析)(3)
ASP.NET MVC (五、HttpClient接口解析)(3)
0 0
+关注
天伟
一个普通程序员
文章
问答
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载