zoukankan      html  css  js  c++  java
  • asp.net XML转JSON

    先用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; }
        }
    }
  • 相关阅读:
    IdentityServer4中AccessToken和IdentityToken中包含的Claims构成
    IdentityServer4授权类型(GrantType)对应的返回类型(ResponseType)
    IdentityServer4支持的授权类型以及组合
    基本技能-调试(android)
    通过修改返回包绕过部分机制的方法的小思考
    centos64位安装32位C/c++库
    redhat_suse双系统引导
    suse pshell连接不上
    vi复杂粘贴
    vi显示行号
  • 原文地址:https://www.cnblogs.com/hantianwei/p/2440004.html
Copyright © 2011-2022 走看看