You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用System.Text.Json序列化到指定TextWriter实例?

关于System.Text.Json直接序列化到TextWriter的解答

System.Text.Json 原生支持直接序列化到 TextWriter 实例,不需要获取其底层的 Stream 对象,哪怕是没有底层流的 TextWriter 实现也可以正常使用。

可用方法

JsonSerializer 类本身就提供了接收 TextWriter 参数的序列化重载,不需要额外配置或者引入第三方包:

  • 同步序列化:直接调用 JsonSerializer.Serialize(TextWriter, object, [JsonSerializerOptions])
  • 异步序列化:直接调用 JsonSerializer.SerializeAsync(TextWriter, object, [JsonSerializerOptions], CancellationToken)

代码示例

using System.Text.Json;
using System.IO;

// 待序列化的目标对象
var sampleData = new { Id = 1, Title = "测试内容", IsActive = true };

// 任意TextWriter实例,这里以无底层流的StringWriter为例
using TextWriter targetWriter = new StringWriter();

// 直接写入,不需要访问底层流
JsonSerializer.Serialize(targetWriter, sampleData);

// 取出序列化结果
string jsonOutput = targetWriter.ToString();

如果是异步场景:

await JsonSerializer.SerializeAsync(targetWriter, sampleData);

补充说明

很多开发者找不到这个功能,主要是大部分入门示例只演示了序列化为字符串、序列化到 Stream 的常用重载,TextWriter 相关重载很少被作为典型案例展示,容易被忽略。这个重载在序列化过程中会直接调用 TextWriter 的文本写入API输出JSON内容,完全不会尝试访问非公开的底层流对象,适配所有合法的 TextWriter 实现。

内容的提问来源于stack exchange,提问作者mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:15:41