当json之间有其他文本时,我如何从流中反序列化多个json对象。在流中,我有以下内容:
Stuff that is not JSON
{"a": 1, "b": 2}
Stuff that is not JSON either
{"a": 3, "b": 4}
我想解析出这两个json对象。
由于这不是一个原生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
,不过您可以将其解析为任何强类型的类型。