C#JSON转XML
输入:[{\'name\': \'yancy\',\'value\': \'0\'},{\'name\': \'jieny\',\'value\': \'1\'}]
string str = "[{\'name\': \'yancy\',\'value\': \'0\'},{\'name\': \'jieny\',\'value\': \'1\'}]";
调用方法:GetCustomItemSpecifics(str)
输出:<?xml version="1.0" encoding="utf-8"?><CustomItemSpecifics xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><ItemSpecifics><NameValueListType><Name xmlns="urn:ebay:apis:eBLBaseComponents">yancy</Name><Value xmlns="urn:ebay:apis:eBLBaseComponents">0</Value></NameValueListType><NameValueListType><Name xmlns="urn:ebay:apis:eBLBaseComponents">jieny</Name><Value xmlns="urn:ebay:apis:eBLBaseComponents">1</Value></NameValueListType></ItemSpecifics></CustomItemSpecifics>
代码:
GetCustomItemSpecifics
public static string GetCustomItemSpecifics(string str) { DataTable dt= JsonConvert.DeserializeObject<DataTable>(str); List<Json2Xml.NameValueListType> nvl = new List<Json2Xml.NameValueListType>(); foreach (DataRow dr in dt.Rows) { Json2Xml.NameValueListType nv = new Json2Xml.NameValueListType(); string sName = dr["Name"].ToString(); string sValue = dr["Value"].ToString(); if (sName != string.Empty && sValue != string.Empty) { nv.Name = sName; nv.Value = new string[] { sValue }; nvl.Add(nv); } } if (nvl.Count == 0) { return string.Empty; } else { Json2Xml.CustomItemSpecifics t = new Json2Xml.CustomItemSpecifics(); t.ItemSpecifics = nvl.ToArray(); return Json2Xml.ObjectToText(t, typeof(Json2Xml.CustomItemSpecifics)); } }
Json2Xml.cs
using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; namespace ConsoleApp1 { public class Json2Xml { [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2612.0")] [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:ebay:apis:eBLBaseComponents")] public enum ItemSpecificSourceCodeType { /// <remarks/> ItemSpecific, /// <remarks/> Attribute, /// <remarks/> Product, /// <remarks/> CustomCode, } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2612.0")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")]