使用DataContractJsonSerializer来创建一个非XML的Json文件[英] Using DataContractJsonSerializer to create a Non XML Json file

本文是小编为大家收集整理的关于使用DataContractJsonSerializer来创建一个非XML的Json文件的处理方法,想解了使用DataContractJsonSerializer来创建一个非XML的Json文件的问题怎么解决?使用DataContractJsonSerializer来创建一个非XML的Json文件问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想使用 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);
}

这比较简单,应该做你想做的事......

本文地址:https://www.itbaoku.cn/post/1794043.html