【问题标题】:How can I serialize a Class to XML如何将类序列化为 XML
【发布时间】:2018-12-05 04:31:27
【问题描述】:

我怎样才能把这个类转换成 XML ?或者有什么可能的方法可以将同一类的 JSON 字符串直接转换为 XML 吗?我没有从转换开始的想法或示例代码。

public class Contacts
        {
            public Datum[] data { get; set; }
            public Info info { get; set; }
        }
public class Datum
        {
            public Owner Owner { get; set; }
            public object Email { get; set; }
            public string Description { get; set; }
            public string currency_symbol { get; set; }
            public string Mailing_Zip { get; set; }
}
 public class Owner
        {
            public string name { get; set; }
            public string id { get; set; }
        }

public class Info
        {
            public int per_page { get; set; }
            public int count { get; set; }
            public int page { get; set; }
            public bool more_records { get; set; }
        }

请帮忙将Class转成XML或基于上述类的JSON String直接转成XML。

场景是,我从 API 接收 JSON 结果,该结果需要在数据类型保存为 XML 的 SQL Server 中进行处理。我希望这可以成功实现。

【问题讨论】:

标签: c# json xml


【解决方案1】:

有很多在线资源可以毫不费力地将 c# 属性转换为 JSON 或 XML,也可以尝试 thisthis 以及 JSON 到 XML 转换器 this

更新 如果您想在代码中进行转换,请尝试以下操作。 ps(使用 Json.NET)

string json = //set your result JSON from the web API call;

XNode node = JsonConvert.DeserializeXNode(json, "Root");

Console.WriteLine(node.ToString());

这会将您的 Json 转换为 XML

【讨论】:

  • @IpsitGaur 我已经更新了答案
【解决方案2】:

我解决了将 JSON 转换为 Class 对象并从 Class 对象序列化 XML 的问题。

public static string GetXMLFromObject(object o)
        {
            StringWriter sw = new StringWriter();
            XmlTextWriter tw = null;
            try
            {
                XmlSerializer serializer = new XmlSerializer(o.GetType());
                tw = new XmlTextWriter(sw);
                serializer.Serialize(tw, o);
            }
            catch (Exception ex)
            {
                //Handle Exception Code
            }
            finally
            {
                sw.Close();
                if (tw != null)
                {
                    tw.Close();
                }
            }
            return sw.ToString();
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多