XML参数转换为Object,并转换为List或DataTable

demo效果:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;

namespace Json转对象
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var varEntity = ToObject(@"<Response>
                        <ResultCode>1</ResultCode>
                        <ResultMsg></ResultMsg>
                        <Item>
                        <DeptID>2001</DeptID>
                        <DeptName>神经内门诊</DeptName>
                        </Item>
                        <Item>
                        <DeptID>2021</DeptID>
                        <DeptName>胸外门诊</DeptName>
                        </Item>
                        </Response>", false);

            List<testEntity> deptList = new List<testEntity>();
            DataTable dt = new DataTable();
            dt.Columns.Add("DeptID");
            dt.Columns.Add("DeptName");
            var objectList = varEntity.Item;
            foreach (var entityItem in objectList)
            {
                testEntity deptEntity = new testEntity();
                deptEntity.DeptID = entityItem.DeptID;
                deptEntity.DeptName = entityItem.DeptName;

                deptList.Add(deptEntity);

                DataRow dr = dt.NewRow();
                dr["DeptID"] = entityItem.DeptID;
                dr["DeptName"] = entityItem.DeptName;

                dt.Rows.Add(dr);
            }
            dataGridView1.DataSource = deptList;
            dataGridView2.DataSource = dt;
        }

        /// <summary>
        /// XML参数转换为Object
        /// </summary>
        /// <param name="IsAddHead">是否添加xml头</param>
        /// <returns></returns>
        public static dynamic ToObject(string xml, bool IsAddHead)
        {
            string head = @"<?xml version=""1.0"" encoding=""utf-8"" ?> ";
            XmlDocument doc = new XmlDocument();
            if (IsAddHead)
            {
                doc.LoadXml(head + xml);
            }
            else
            {
                doc.LoadXml(xml);
            }
            string Json = JsonConvert.SerializeXmlNode(doc);
            dynamic obj = (JsonConvert.DeserializeObject(Json) as dynamic)["Response"];
            return obj;
        }
    }

    public class testEntity
    {
        public string DeptID { get; set; }

        public string DeptName { get; set; }

       }
}
时间: 2024-08-07 08:40:15

XML参数转换为Object,并转换为List或DataTable的相关文章

ASP.NET 动态查找数据 并且生成xml文档 同时使用xslt转换为xhtml

前言 xsl是一门标签解析语言,很适合做动态网页的前台标签 www.bamn.cn 1 首先是aspx页面 添加一个输入框 按钮 还有一个用来显示解析后的xhtml代码的控件 <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"

关于匿名类无法转换为object

缘由,不能在Razor中使用匿名类, 先事先封装了一个方法,用于Razor给cshtml模板返回页面. 在ashx一般处理程序中,是这样调用的 匿名类的格式如下:(只看格式,不看具体内容) 调用这样 报错 [TemplateCompilationException: Unable to compile template. “object”不包含“UserName”的定义,并且找不到可接受类型为“object”的第一个参数的扩展方法“UserName”(是否缺少 using 指令或程序集引用?)

js解析xml字符串或xml文件,将其转换为xml对象

注:判断是否是ie浏览器和非ie浏览器的方法有多种,在此只介绍用例中的方法: 1.解析xml字符串,得到xml对象的方式: function createXml(str){ if(document.all){//IE浏览器     var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");        xmlDoc.async = false;     xmlDoc.loadXML(str);     return xmlDoc; } el

[Nutch]编译hadoop出现object[]无法转换为K[]问题解决

1. 问题描述 在使用JDK8编译hadoop 1.2.1的时候会出现object[]无法转换为K[]的问题,如下: 2. 问题解决 (1)打开hadoop目录下的InputSampler.java文件,路径如下: hadoop-1.2.1\src\mapred\org\apache\hadoop\mapreduce\lib\partition\InputSampler.java (2)大概319行找到如下内容: final InputFormat inf = ReflectionUtils.n

将XML文件中的内容转换为Json对象

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;using System.Web.Script.Serialization;using Newtonsoft.Json;using System.Windows.Forms; namespace XmlToJsonDemo{ class Program { static void Main(strin

inet_addr”: 不能将参数 1 从“CString”转换为“const char *”1&gt;

[cpp] view plaincopy CString ipaddress; ipaddress = "192.168.39.207"; DWORD m_dwPuIp; m_dwPuIp = inet_addr(ipaddress); 有一个错误:“inet_addr”: 不能将参数 1 从“CString”转换为“const char *”1>没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符. 网上有说用LPCTSTR进行强制转换 [cpp] view pla

C# 将object对象转换为实体对象

C# 将object对象转换为实体对象.代码如下: /// <summary> /// 将object对象转换为实体对象 /// </summary> /// <typeparam name="T">实体对象类名</typeparam> /// <param name="asObject">object对象</param> /// <returns></returns>

java中如何将Object类型转换为int类型

如何将Object类型转换为int类型 Object object = null; try { Integer.parseInt(object.toString()); } catch (NumberFormatException e) {} 也可以先判定一下是否是Integer //可以先判定一下是否是Integer Object object = "111"; if (object instanceof Integer) { Integer.parseInt(object.toSt

解如何利用 XML 和 JavaScript Object Notation 在 Ajax 客户端和 Java 服务器之间传输数据。

2006 年 6 月发表 Ajax 核心 API(即所谓的 XMLHttpRequest)的唯一用途就是发送 HTTP 请求,在 Web 浏览器与服务器之间进行数据交换.Web 页面中运行的 JavaScript 代码,可以使用 XMLHttpRequest 将该请求参数提交至服务器端脚本,例如 Servlet 或 JSP 页面.调用的 Servlet/JSP 将发回一个响应,其中包含了一般用于不需刷新整个页面即可更新用户查看内容的数据.此种方法在性能和可用性方面均体现出了独有的优势,因为这将降