从Big Json中提取数据



我们有一个非常大的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;
    }

希望它可以帮助您

相关内容

  • 没有找到相关文章

最新更新