如何使用Json.Net跟踪和处理流

时间:2018-06-25 13:11:56

标签: c# json.net

我正在编写一个将进行REST HTTP调用并在响应正文中接收JSON的应用程序。响应主体可能很大,而且内容变量很大,所以我想将其作为流处理并处理内容以确定要反序列化的部分。

我能够使用StreamReader(传入HttpResponseMessage.Content,作为流读取)和JsonTextReader来执行解析并反序列化想要的对象。但是,随着JsonTextReader从流中提取数据,我还想将原始JSON跟踪到文件中,以便我们记录了原始响应(用于诊断)。

例如,我的代码:

var serializer = new JsonSerializer()

using (var streamReader = new StreamReader(httpContentStream))
using (var textReader = new JsonTextReader(streamReader))
{
    textReader.SupportMultipleContent = true;

    while (textReader.Read())
    {
        // Code which looks at the tokens in the text reader and
        // figures out what to throw away, what to deserialize and
        // what the next type to deserialize will be (stored in someType)

       Type someType = null;

       // Deserialize an object that we're interested in.
       // This advances the textReader to the next token
       // after then end of this object (I.E. More than one token)

       var someObject = serializer .Deserialize(textReader, someType);

    }
}

是否有一种方法还可以让Json.Net在将字符从流中拉出时跟踪其读取的字符串?我知道这可能会生成一个大文件!

在此先感谢您的回复。

0 个答案:

没有答案