电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

【插件开发】C# 中 JSON、DataTable、XML 和对象类的精彩转换与反序列化实战

来源:金蝶云社区作者:金蝶2024-09-163

【插件开发】C# 中 JSON、DataTable、XML 和对象类的精彩转换与反序列化实战

**一、对象类与JSON的转换** ``` using System; using Newtonsoft.Json; class Program { class Person { public string Name { get; set; } public int Age { get; set; } } static void Main() { // 对象转 JSON Person person = new Person { Name = "Alice", Age = 25 }; string json = JsonConvert.SerializeObject(person); Console.WriteLine(json); // JSON 转对象 string jsonData = "{\"Name\":\"Bob\",\"Age\":30}"; Person deserializedPerson = JsonConvert.DeserializeObject<Person>(jsonData); Console.WriteLine(deserializedPerson.Name + " " + deserializedPerson.Age); } } ``` **二、DataTable与JSON的转换** ``` using System; using System.Data; using Newtonsoft.Json; class Program { static void Main() { // 创建 DataTable DataTable table = new DataTable(); table.Columns.Add("Name", typeof(string)); table.Columns.Add("Age", typeof(int)); table.Rows.Add("Alice", 25); table.Rows.Add("Bob", 30); // DataTable 转 JSON string json = JsonConvert.SerializeObject(table); Console.WriteLine(json); // JSON 转 DataTable string jsonData = "[{\"Name\":\"Charlie\",\"Age\":35},{\"Name\":\"David\",\"Age\":40}]"; DataTable deserializedTable = JsonConvert.DeserializeObject<DataTable>(jsonData); foreach (DataRow row in deserializedTable.Rows) { Console.WriteLine(row["Name"] + " " + row["Age"]); } } } ``` **三、XML与JSON的转换** ``` using System; using System.Xml; using Newtonsoft.Json; using Newtonsoft.Json.Linq; class Program { static void Main() { // JSON 转 XML string json = "{\"name\":\"Alice\",\"age\":25}"; XmlDocument xmlDoc = JsonToXml(json); Console.WriteLine(xmlDoc.OuterXml); // XML 转 JSON string xml = "<person><name>Bob</name><age>30</age></person>"; string jsonResult = XmlToJson(xml); Console.WriteLine(jsonResult); } static XmlDocument JsonToXml(string json) { JObject jsonObject = JObject.Parse(json); XmlDocument xmlDoc = new XmlDocument(); XmlElement root = xmlDoc.CreateElement("root"); xmlDoc.AppendChild(root); foreach (var property in jsonObject.Properties()) { XmlElement element = xmlDoc.CreateElement(property.Name); element.InnerText = property.Value.ToString(); root.AppendChild(element); } return xmlDoc; } static string XmlToJson(string xml) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); JObject jsonObject = new JObject(); foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes) { jsonObject.Add(node.Name, node.InnerText); } return jsonObject.ToString(); } } ``` **四、DataTable与对象类的转换** ``` using System; using System.Data; class DataTableObjectConversion { class Person { public string Name { get; set; } public int Age { get; set; } } // DataTable 转对象类 public static List<Person> DataTableToObject(DataTable dt) { List<Person> persons = new List<Person>(); foreach (DataRow row in dt.Rows) { Person person = new Person { Name = row["Name"].ToString(), Age = Convert.ToInt32(row["Age"]) }; persons.Add(person); } return persons; } // 对象类转 DataTable public static DataTable ObjectToDataTable(List<Person> persons) { DataTable dt = new DataTable(); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Age", typeof(int)); foreach (var person in persons) { dt.R

【插件开发】C# 中 JSON、DataTable、XML 和对象类的精彩转换与反序列化实战

**一、对象类与JSON的转换**```using System;using Newtonsoft.Json;class Program{ class Person { pub...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信