newtonsoft SerializeXmlNode尾随空值

时间:2017-09-05 16:23:14

标签: serialization json.net

我在C#中创建一个XmlDoc并使用Newtonsoft序列化为JSON。它可以工作,但是我在JSON的最后得到了一堆似乎是" NUL"的东西。不知道为什么。有人见过这个吗?

CODE:

XmlDocument xmlDoc = BuildTranslationXML(allTrans, applicationName, language);

// Convert the xml doc to json
// the conversion inserts \" instead of using a single quote, so we need to replace it
string charToReplace = "\"";
string jsonText = JsonConvert.SerializeXmlNode(xmlDoc);

// json to a stream
MemoryStream memoryStream = new MemoryStream();
TextWriter tw = new StreamWriter(memoryStream);
tw.Write(jsonText);
tw.Flush();
tw.Close();

// output the stream as a file
string fileName = string.Format("{0}_{1}.json", applicationName, language);
return File(memoryStream.GetBuffer(), "text/json", fileName);

该文件被提供给调用网页,浏览器会提示用户保存文件。打开文件时,它会显示正确的JSON,但也包含所有尾随空值。请参见下面的图片(希望stackoverflow链接正常工作):

file screenshot

1 个答案:

答案 0 :(得分:2)

GetBuffer()方法返回MemoryStream的内部表示。请使用ToArray()来获取内部数组中包含数据Newtonsoft的部分。