Newtonsoft.Json从流中反序列化多个对象

时间:2015-02-21 13:07:12

标签: c# json json.net

当jsons之间有其他文本时,如何从流中反序列化多个json对象。 在流中,我有以下内容:

Stuff that is not JSON

{"a": 1, "b": 2}

Stuff that is not JSON either

{"a": 3, "b": 4}

我想解析那两个json对象。

1 个答案:

答案 0 :(得分:1)

由于这不是原生JSON,因此您不得不手动完成一些人工工作,但这并不困难。

您可以将您的信息流传递到StreamReader并跳过前两行中的两行:

var streamReader = new StreamReader(yourStream);

for (int i = 0; i < 2; i++)
{
    streamReader.ReadLine();
}

var jsonLine = textFile.ReadLine();
var yourObject = JsonConvert.Deserialize<dynamic>(jsonLine);

对两条线都这样做。如果你的行之间有一个常数较长的JSON,你可以使用while循环代替模数。

注意我解析为dynamic,但您可以将其解析为任何强类型类型。