我需要一個通用例程,它接受任何有效的XML並將其轉換爲JSON而無需知道底層數據類型。我知道這很容易用Json.Net完成,我也知道如何用DataContractJsonSerializer來完成,但是我們的組織不使用Json.Net,並且DataContractJsonSerializer需要啓用數據協定的對象類型。使用Json.Net是否可以使用JsonReaderWriterFactory將XML轉換爲JSON而不使用DataContractJsonSerializer?
我的工作代碼:
XmlDocument document = new XmlDocument();
document.LoadXml(xml);
string jsonText = JsonConvert.SerializeXmlNode(document);
我希望能夠使用,使用替代Json.Net JsonReaderWriterFactory代碼:
string jsonText = string.Empty;
MemoryStream stream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(stream);
streamWriter.Write(xml);
streamWriter.Flush();
stream.Position = 0;
using (XmlDictionaryWriter xmlWriter = JsonReaderWriterFactory.CreateJsonWriter(stream))
{
object someObject = new object();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(someObject.GetType());
serializer.WriteObject(stream, someObject);
xmlWriter.Flush();
jsonText = Encoding.Default.GetString(stream.GetBuffer());
}
是否有辦法在這附近?
這種匿名類型的方法非常適合我想要做的事。感謝您的幫助! – 2014-10-20 09:02:24