簡體   English   中英

從大 JSON 中提取數據

[英]extracting data from big JSON

我們有一個非常大的 JSON,接近 1500 個字段。 我們想要讀取大部分 JSON 字段(大多數時候我必須讀取整個 JSON 並獲取 80% 的數據)。 什么是最優化性能的方式? 我們應該使用 JObject.Parse 然后使用 JsonPath 或者我們應該使用 JsonConvert.DeserializeObject 然后使用 linq 查詢還是有其他更好的方法

既然你提到它是一個很大的 JSON,我建議你使用一個 stram 閱讀器,這樣你就不需要將整個 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;
    }

希望能幫到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM