问题描述
我想使用 DataContractJsonSerializer 序列化为 JsonFormat 文件.问题是 WriteObject 方法只有 3 个选项 XmlWriter、XmlDictionaryWriter 和 Stream.
为了得到我想要的,我使用了以下代码:
var js = new DataContractJsonSerializer(typeof(T), _knownTypes); using (var ms = new MemoryStream()) { js.WriteObject(ms, item); ms.Position = 0; using (var sr = new StreamReader(ms)) { using (var writer = new StreamWriter(path, false)) { string jsonData = sr.ReadToEnd(); writer.Write(jsonData); } } }
这是唯一的方法还是我错过了什么?
推荐答案
假设您只是想将文本写入文件,不清楚为什么要先将其写入 MemoryStream.您可以使用:
var js = new DataContractJsonSerializer(typeof(T), _knownTypes); using (var stream = File.Create(path)) { js.WriteObject(stream, item); }
这比较简单,应该做你想做的事......
相关问答
使用 DataContractJsonSerializer 读取 JSON
使用datacontractjsonserializer toserialize json到字典
使用DataContractJsonSerializer生成轻量级JSON
是否可以使用JsonReaderWriterFactory将XML转换为JSON,而不使用DataContractJsonSerializer?
使用datacontractjsonserializer c#中的datacontractjsonserializer对JSON对象进行json对象的估算化对象.
如何使用DataContractJsonSerializer解析嵌套的json对象?
使用datacontractjsonserializer的应对变量类型JSON数组
使用datacontractjsonserializer的简单JSON阵列进行挑选
从非XML文件解析XML
创建XML文件:使用awk如何创建XML文件