C# xml 转对象


  1 using System;
  2 using System.Collections.Generic;
  3 using System.IO;
  4 using System.Linq;
  5 using System.Text;
  6 using System.Threading.Tasks;
  7 using System.Xml;
  8 using System.Xml.Serialization;
  9 
 10 namespace ConsoleApp3
 11 {
 12     class Program
 13     {
 14         static void Main(string[] args)
 15         {
 16             string stream = "<request><ship_package_list><ship_package><mail_company_name>中国邮政</mail_company_name><mail_no>123456789</mail_no></ship_package></ship_package_list><main_purchase_order_no>40627867847799</main_purchase_order_no><sub_order_list><sub_order><product_id>621540814494</product_id><sub_purchase_order_no>40627867857772</sub_purchase_order_no><product_title>测试商品3 非请勿下单</product_title></sub_order><sub_order><product_id>621541154070</product_id><sub_purchase_order_no>40627867867745</sub_purchase_order_no><product_title>测试商品2 非请勿下单</product_title></sub_order></sub_order_list></request>";
 17            
 18             //StringReader reader = new StringReader(stream);
 19             //XmlSerializer xmlSerializer = new XmlSerializer(typeof(object));
 20             //object obj = xmlSerializer.Deserialize(reader);
 21             XmlDocument doc = new XmlDocument();
 22             doc.LoadXml(stream.ToString());
 23             string jsonText = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);
 24             object a = Newtonsoft.Json.JsonConvert.DeserializeObject<object>(jsonText);
 25             QiMenDeliveredModel model = new QiMenDeliveredModel();
 26             try
 27             {
 28                 using (StringReader sr = new StringReader(stream))
 29                 {
 30                     XmlSerializer serializer = new XmlSerializer(typeof(QiMenDeliveredModel));
 31 
 32                     model = serializer.Deserialize(sr) as QiMenDeliveredModel;
 33 
 34                 }
 35             }
 36             catch (Exception ex)
 37             {
 38             }
 39             try
 40             {
 41                 RequestModel<ship_package, Delivered_Sub_Order> m = Newtonsoft.Json.JsonConvert.DeserializeObject<RequestModel<ship_package, Delivered_Sub_Order>>(jsonText);
 42 
 43                 model.main_purchase_order_no = m.request.main_purchase_order_no;
 44                 List<Delivered_Sub_Order> list = new List<Delivered_Sub_Order>();
 45                 list.Add(m.request.sub_order_list.sub_order);
 46                 model._Delivered_Sub_Order = list;
 47                 List<ship_package> lists = new List<ship_package>();
 48                 lists.Add(m.request.ship_package_list.ship_package);
 49                 model._ship_package_list = lists;
 50             }
 51             catch (Exception ex)
 52             {
 53 
 54             }
 55             try
 56             {
 57                 RequestModel<ship_package, List<Delivered_Sub_Order>> m = Newtonsoft.Json.JsonConvert.DeserializeObject<RequestModel<ship_package, List<Delivered_Sub_Order>>>(jsonText);
 58 
 59                 model.main_purchase_order_no = m.request.main_purchase_order_no;
 60                 List<Delivered_Sub_Order> list = new List<Delivered_Sub_Order>();
 61                 foreach (var item in m.request.sub_order_list.sub_order)
 62                 {
 63                     list.Add(item);
 64                 }
 65                 model._Delivered_Sub_Order = list;
 66                 List<ship_package> lists = new List<ship_package>();
 67                 lists.Add(m.request.ship_package_list.ship_package);
 68                 model._ship_package_list = lists;
 69             }
 70             catch (Exception ex)
 71             {
 72 
 73             }
 74             try
 75             {
 76 
 77                 RequestModel<List<ship_package>, Delivered_Sub_Order> m = Newtonsoft.Json.JsonConvert.DeserializeObject<RequestModel<List<ship_package>, Delivered_Sub_Order>>(jsonText);
 78                 model.main_purchase_order_no = m.request.main_purchase_order_no;
 79                 List<Delivered_Sub_Order> list = new List<Delivered_Sub_Order>();
 80                 list.Add(m.request.sub_order_list.sub_order);
 81                 model._Delivered_Sub_Order = list;
 82                 List<ship_package> lists = new List<ship_package>();
 83                 foreach (var item in m.request.ship_package_list.ship_package)
 84                 {
 85                     lists.Add(item);
 86                 }
 87                 model._ship_package_list = lists;
 88             }
 89             catch (Exception ex)
 90             {
 91             }
 92             try
 93             {
 94                 RequestModel<List<ship_package>, List<Delivered_Sub_Order>> m = Newtonsoft.Json.JsonConvert.DeserializeObject<RequestModel<List<ship_package>, List<Delivered_Sub_Order>>>(jsonText);
 95                 model.main_purchase_order_no = m.request.main_purchase_order_no;
 96                 List<Delivered_Sub_Order> list = new List<Delivered_Sub_Order>();
 97                 foreach (var item in m.request.sub_order_list.sub_order)
 98                 {
 99                     list.Add(item);
100                 }
101                 model._Delivered_Sub_Order = list;
102                 List<ship_package> lists = new List<ship_package>();
103                 foreach (var item in m.request.ship_package_list.ship_package)
104                 {
105                     lists.Add(item);
106                 }
107                 model._ship_package_list = lists;
108             }
109             catch (Exception ex)
110             {
111             }
112            
113             string s = "1";
114         }
115     }
116 
117     /// <summary>
118     /// 发货
119     /// </summary>
120     [XmlRoot(ElementName = "request")]
121     [Serializable]
122     public class QiMenDeliveredModel
123     {
124         /// <summary>
125         /// 发货包裹列表
126         /// </summary>
127         [XmlArray("ship_package_list"), XmlArrayItem("ship_package")]
128         public List<ship_package> _ship_package_list { get; set; }
129 
130         /// <summary>
131         /// 主采购单号
132         /// </summary>
133         public string main_purchase_order_no { get; set; }
134 
135         /// <summary>
136         /// 子采购单列表
137         /// </summary>
138         [XmlArray("sub_order_list"), XmlArrayItem("sub_order")]
139         public List<Delivered_Sub_Order> _Delivered_Sub_Order { get; set; }
140 
141     }
142 
143     /// <summary>
144     /// 发货包裹
145     /// </summary>
146     public class ship_package
147     {
148         /// <summary>
149         /// 物流发货公司
150         /// </summary>
151         public string mail_company_name { get; set; }
152 
153         /// <summary>
154         /// 运单号
155         /// </summary>
156         public string mail_no { get; set; }
157     }
158 
159     /// <summary>
160     /// 子采购单
161     /// </summary>
162     public class Delivered_Sub_Order
163     {
164         /// <summary>
165         /// 商家编码
166         /// </summary>
167         public string merchant_code { get; set; }
168 
169         /// <summary>
170         /// 仓内货品外部编码
171         /// </summary>
172         public string goods_outer_id { get; set; }
173 
174         /// <summary>
175         /// 产品id
176         /// </summary>
177         public string product_id { get; set; }
178 
179         /// <summary>
180         /// 子采购单单号
181         /// </summary>
182         public string sub_purchase_order_no { get; set; }
183 
184         /// <summary>
185         /// 产品SKU ID
186         /// </summary>
187         public string sku_id { get; set; }
188 
189         /// <summary>
190         /// 产品标题
191         /// </summary>
192         public string product_title { get; set; }
193 
194         /// <summary>
195         /// 产品编码
196         /// </summary>
197         public string product_number { get; set; }
198     }
199 
200     public class RequestModel<SPT, SUT>
201     {
202         public QiMenDeliveredJsonModel<SPT, SUT> request { get; set; }
203     }
204 
205     public class QiMenDeliveredJsonModel<SPT, SUT>
206     {
207         /// <summary>
208         /// 发货包裹列表
209         /// </summary>
210         public ShipPackageList<SPT> ship_package_list { get; set; }
211 
212         /// <summary>
213         /// 主采购单号
214         /// </summary>
215         public string main_purchase_order_no { get; set; }
216 
217         /// <summary>
218         /// 子采购单列表
219         /// </summary>
220         public SubOrderList<SUT> sub_order_list { get; set; }
221 
222     }
223     public class ShipPackageList<T>
224     {
225         public T ship_package { get; set; }
226     }
227 
228     public class SubOrderList<T>
229     {
230         public T sub_order { get; set; }
231     }
232 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM