我在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链接正常工作):
答案 0 :(得分:2)
GetBuffer()
方法返回MemoryStream
的内部表示。请使用ToArray()
来获取内部数组中包含数据Newtonsoft
的部分。