【问题标题】:Convert JSON String to XML string将 JSON 字符串转换为 XML 字符串
【发布时间】:2012-10-26 04:13:01
【问题描述】:

我有一个 JSON 字符串:

var jsonString = JSON.stringify(dataObject);
document.getElementById("hdnChromedata").value = jsonString;

==> hdnChromedata = JSON 字符串

但在不同的代码部分中,我将 XML 序列化字符串存储到“hdnChromedata”.as :

XmlSerializer xmlSerializer = new XmlSerializer(vinDescription.GetType());
StringWriter textWriter = new StringWriter();

xmlSerializer.Serialize(textWriter, vinDescription);
this.hdnChromedata.Value = textWriter.ToString();

==> hdnChromedata = XML 字符串

在检索值时,我正在像这样反序列化字符串:

XmlDocument doc = new XmlDocument();
doc.LoadXml(this.hdnChromedata.Value);
XmlNodeReader reader = new XmlNodeReader(doc.DocumentElement);

XmlSerializer ser = new XmlSerializer(decodedInfo.GetType());
object textObj = ser.Deserialize(reader);
vinDescription = (AutoExact.AEVINDecoderService.VINDescription)textObj;

这里是 doc.LoadXml(this.hdnChromedata.Value) 行 当 hdnChromedata 是 JSON 字符串时抛出错误。

我的问题是,如何将这个 JSON 字符串转换为 XML 字符串?

或者还有其他方法可以解决这个问题吗?

基本上我需要一种在 ASP.NET 1.1 中将 JSON 字符串转换为 XML 字符串的方法

【问题讨论】:

    标签: c# asp.net json xml-serialization


    【解决方案1】:

    使用 json-lib,一个为任何 Java 程序添加 JSON 支持的库。 json-lib 提供了一个 XMLSerializer,可用于从 JSON 对象输出 XML。

    https://discursive.atlassian.net/wiki/display/CJCOOK/Converting+JSON+to+XML

    【讨论】:

      【解决方案2】:

      您可以为此使用 Json.NET 库的 JsonConvert。详情请参阅http://james.newtonking.com/projects/json/help/index.html?topic=html/ConvertingJSONandXML.htm

      Json.NET 是一个用于 .NET 的开源 JSON 处理库,它是最好的。

      【讨论】:

      • 我需要添加某种第三方参考吗?恐怕我不能从我的项目中引用它..
      • 是的,您需要从您的项目中引用 DLL。
      • 没有其他方法可以将 JSON 字符串转换为 XML 字符串。我认为从项目中引用 DLL 对我来说是不可行的。
      • 你是说你不能在你的项目中使用任何库??这意味着您必须自己编写可能需要的所有功能,除非它恰好在系统库中......
      • 那么,如果你不介意我这么说,你的客户就是个傻瓜,这会让你的生活变得更加艰难。
      【解决方案3】:

      不需要转换,只需在反序列化之前测试字符串的第一个字符。如果字符串以<开头,则将其视为XML,如果以{开头,则将其视为JSON。

      【讨论】:

      • 如果以' '开头怎么办? :)
      • 我想这取决于 OP 的要求,但是我喜欢这种方法
      • @L.B: throw new InvalidOperationException :-)
      • @ChristianHayter.. 我已经编写了很多使用 XML 对象的代码...如果我遵循您建议的方法,我将不得不再次为 JSON 对象编写相同的代码。 .
      • @Learner:您不应该将两种不同类型的数据写入不同位置的同一个变量。如果你选择这样做,你必须接受后果。选择一种数据格式并坚持下去。
      猜你喜欢
      • 2019-10-29
      • 2016-03-17
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2018-08-29
      • 1970-01-01
      相关资源
      最近更新 更多