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