我们有一个非常大的JSON,接近1500个字段。我们想阅读大多数JSON字段(大多数时候我必须阅读整个JSON并获得80%的数据)。最佳性能优化的方法是什么?我们应该使用Jobignt.Parse,然后使用JSONPATH,还是应该使用JSONCONVERT.DeserializeObject,然后使用LINQ查询,或者还有其他更好的方法
,由于您提到这是一个很大的JSON,我建议您使用Stram Reader,因此您无需将整个JSON加载到内存
using (var reader = new JsonTextReader(new StreamReader(stream)))
{
while(!(reader.TokenType.Equals(JsonToken.EndObject) && reader.Depth == 0))
{
if (reader.TokenType.Equals(JsonToken.PropertyName))
if (!DoSomething(reader))
break;
if (!reader.Read())
break;
}
}
在您的DoingSomething
方法中,您可以从一个字段读取值
private bool DoSomething(JsonTextReader reader)
{
if(reader.Path.Equals("FieldName_You_Are_Looking_For"))
{
string jsonText = JsonTextReaderToJsonText(reader);
// Do something to read the value
}
// return true to continue reading, return false to stop reading
return true;
}
希望它可以帮助您