【问题标题】:How to Serialize XML to a JSON object with Json.NET如何使用 Json.NET 将 XML 序列化为 JSON 对象
【发布时间】:2011-10-15 06:11:59
【问题描述】:

我可以像这样将 XML 序列化为 JSON 字符串:

var xml = new XmlDocument();
xml.LoadXml("<person><name>John</name></person>");
string jsonString = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xml, Newtonsoft.Json.Formatting.None);
Response.ContentType = "application/json";
Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(jsonString));

这会给我:

"{\"person\":{\"name\":\"John\"}}"

但是如何将其序列化为 JSON 对象?像这样:

{"person":{"name":"John"}}

【问题讨论】:

    标签: c# xml json json.net


    【解决方案1】:

    有时我们只是想让它变得更难......

    var xml = new XmlDocument();
    xml.LoadXml("<person><name>John</name></person>");
    Response.ContentType = "application/json";
    Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(xml));
    

    我做错的是将 XML 序列化为字符串,然后再次序列化。

    【讨论】:

    • 在我的情况下,我有一个 wcf 方法,我需要从中返回 json 字符串。数据集> xml> json,但是当我转换为json字符串时,我遇到了同样的问题。我的方法签名: [WebGet(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/methosnamenamespoace?querystring")] string mthodname(args);如果在另一端获得正确的 json,我应该返回什么。请指导。
    • 可以使用本地 .xml 文件代替 Loadxml() 中的 xml 字符串吗?
    • @cardiac7 是的,您可以为此使用任何XmlDocument。对象如何填充 XML 并不重要。
    【解决方案2】:

    当您将访问数据时 / 自动不显示。 我正在访问 AJAX post 的 HTML5 帮助。 结果显示

    在 C# 中结果显示 "{\"person\":{\"name\":\"John\"}}"

    但在 HTML5 中,它工作正常 {"person":{"name":"John"}}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多