我們有一個非常大的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數據 -
- 6. 從JSON數組中提取數據?
- 7. 從JSON數組中提取數據android
- 8. 如何從大JSON文檔中提取數據?
- 9. 從字符串中提取json數據包含json數據
- 10. 提取從JSON數據在Php
- 11. 從非JSON API中提取數據url
- 12. 從節點提取JSON數據?
- 13. 如何從此JSON中提取數據?
- 14. 從JSON中提取數據返回undefined
- 15. 如何從JSON數據中提取URL?
- 16. 無法從JSON中提取數據
- 17. 從json中提取php數據
- 18. 從JSON問題中提取數據
- 19. Javascript,從JSON中提取數據
- 20. 未從json文件中提取數據
- 21. 從asp.net c中提取json數據#
- 22. 從JSON中提取多個數據集
- 23. 從JSON URL中提取數據
- 24. Python 3.從json中提取數據
- 25. 從Json字符串中提取數據
- 26. 從JSON中提取數據返回undefined
- 27. 從JSON中提取數據文件
- 28. Regex如何從json中提取數據
- 29. 從json文件中提取數據
- 30. 使用Java從JSON中提取數據
它看起來像你已經意識到一些選擇,爲什麼你不會嘗試它們,並使用秒錶來衡量時間,以找到最高性能的方式? –
可能是這個鏈接將有助於你http://stackoverflow.com/questions/4611031/convert-json-string-to-c-sharp-object –