使用JSON.NET生成截断的JSON

时间:2019-04-08 09:03:00

标签: c# json.net

鉴于.NET对象,我想将其序列化为JSON字符串,但会被截断为特定长度(例如100个字符)。

有没有一种有效的方式来进行序列化而不涉及序列化整个对象(这可能很大)?


进行编辑以使内容更清晰:

结果不必是有效的JSON字符串。它应该等效于:

JsonConvert.SerializeObject(obj).Substring(0, 100);

...但不遍历整个对象图。

1 个答案:

答案 0 :(得分:3)

在这种情况下,没有序列化程序会期望,因为通常他们的工作是制作可以可靠解析的有效数据。但是,许多串行器都可以选择将TextWriter(或者,如果不是,则为Stream)作为输出目标。您可以编写一个自定义的子类,这些子类要么在选定的数量后静默丢弃数据(尽管序列化程序仍会遍历整个对象图),或者故意抛出异常一次已达到所需的数量(此异常会中断序列化程序,使您避免大部分不必要的工作)。