我们有一个非常大的JSON,接近1500个字段。我们希望阅读大部分JSON字段(大部分时间我必须阅读整个JSON并获得80%的数据)。什么可能是性能最优化的方式?我们应该使用JObject.Parse,然后使用JsonPath,或者我们应该使用JsonConvert.DeserializeObject,然后使用linq查询或有没有其他更好的方法从大JSON提取数据
-1
A
回答
1
既然你提到它是一个大的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;
}
希望它可以帮助你
+0
谢谢刘建平,大部分时间我必须读整个JSON并获得80%的数据 – user3615869
+0
内存明智,流读取器比加载整个数据到内存更有效率。 –
+0
唯一的限制,我看到我需要添加这么多如果条件检查每个路径任何更好的路径检查和检索 – user3615869
相关问题
- 1. 从JSON Feed提取数据
- 2. 反序列化大JSON数组并从中提取数据
- 3. 提取JSON数据
- 4. 提取JSON数据 -
- 5. 从JSON数组中提取数据android
- 6. 从JSON数组中提取数据?
- 7. 如何从大JSON文档中提取数据?
- 8. 从字符串中提取json数据包含json数据
- 9. 从json兄弟姐妹提取数据?
- 10. 从JSON中提取数据返回undefined
- 11. 从JSON中提取数据返回undefined
- 12. Python - 从数据框提取信息(JSON)
- 13. 如何从此JSON中提取数据?
- 14. 如何从JSON数据中提取URL?
- 15. 无法从JSON中提取数据
- 16. Python 3.从json中提取数据
- 17. 从JSON中提取数据文件
- 18. 未从json文件中提取数据
- 19. 从JSON URL中提取数据
- 20. 从JSON中提取多个数据集
- 21. 从大字符串中提取数据
- 22. C#从Json或DataSets提取数据 - 从Python移植(Json到Dict)
- 23. 提取杨松JSON数据
- 24. 提取数据到JSON
- 25. json API数据提取
- 26. JSON不提取数据?
- 27. 从JSON中提取数据并修改数据
- 28. 无法从填充了JSON数据的NSDictionary中提取数据
- 29. 从Json中提取ng-bootstrap type的数据提前
- 30. JSON提取从XML
它看起来像你已经意识到一些选择,为什么你不会尝试它们,并使用秒表来衡量时间,以找到最高性能的方式? –
可能是这个链接将有助于你http://stackoverflow.com/questions/4611031/convert-json-string-to-c-sharp-object –