【问题标题】:Json.NET - convert JSON to XML and remove XML version, encoding?Json.NET - 将 JSON 转换为 XML 并删除 XML 版本、编码?
【发布时间】:2011-05-24 12:31:32
【问题描述】:

http://james.newtonking.com/projects/json/help/

当我使用“DeserializeXmlNode”并且我的 JSON 被转换为 XML 文档时,怎么会这样? 然后将我的 XML 文档转换成这样的字符串

   string strXML = "";
   StringWriter writer = new StringWriter();
   xmlDoc.Save(writer);
   strXML = writer.ToString();

包括

<?xml version="1.0" encoding="utf-16"?>

我没有添加,如何删除?

【问题讨论】:

    标签: c# xml json json.net xml-deserialization


    【解决方案1】:

    没有该行的 XML 不是有效的XML file

    该行称为 XML 声明

    例如,查看Catalog TitlesNetflixOData XML,你能看到第一行吗?

    http://odata.netflix.com/Catalog/Titles

    【讨论】:

    • 但我不需要它在 Web 服务 API 中有效。 :)
    • 您应该始终使用该行,否则您将无法正确解析它,特别是如果您现在或将来对特殊字符使用某种编码,例如 öü 等...
    【解决方案2】:

    将 XmlWriter 与 StringBuilder 一起使用,而不是 StringWriter

     var strXML = "";
     var writer = new StringBuilder();   
     var settings = new System.Xml.XmlWriterSettings() { OmitXmlDeclaration = true};
     var xmlWriter = System.Xml.XmlWriter.Create(strXML, settings);   
     xmlDoc.Save(xmlWriter);
     strXML = writer.ToString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多