首頁 > 後端開發 > C++ > 如何使用 Json.NET 高效解析 .NET 中大型且格式錯誤的 JSON 檔案?

如何使用 Json.NET 高效解析 .NET 中大型且格式錯誤的 JSON 檔案?

Patricia Arquette
發布: 2025-01-05 18:09:44
原創
174 人瀏覽過

How Can I Efficiently Parse Large and Malformed JSON Files in .NET Using Json.NET?

使用Json.NET 解析.NET 中的大型且格式錯誤的JSON 檔案

在.NET 中解析大型JSON 檔案可能具有挑戰性,尤其是在以下情況下JSON 格式錯誤。在本文中,我們將探討解析非常大的 JSON 檔案時遇到的挑戰,並使用 Json.NET 提供解決方案。

問題:巢狀數組結構

一大型 JSON 檔案的常見問題是其複雜的結構。在您的例子中,JSON 檔案包含一個物件數組,但每個數組都包含在立即關閉和開啟的括號內。這使得 JSON 在作為一個整體時在技術上無效。

將 JsonTextReader 與 SupportMultipleContent 結合使用

為了處理這種格式錯誤的 JSON 格式,Json.NET 在JsonTextReader 類別中。透過將 SupportMultipleContent 標誌設為 true,我們可以在循環中單獨解析每個項目。

這種方法允許對非標準 JSON 進行記憶體高效的處理,無論其大小或巢狀數組的數量如何。下面的程式碼示範了這種技術:

using (WebClient client = new WebClient())
using (Stream stream = client.OpenRead(stringUrl)) 
using (StreamReader streamReader = new StreamReader(stream))
using (JsonTextReader reader = new JsonTextReader(streamReader))
{
    reader.SupportMultipleContent = true;

    var serializer = new JsonSerializer();
    while (reader.Read())
    {
        if (reader.TokenType == JsonToken.StartObject)
        {
            Contact c = serializer.Deserialize<Contact>(reader);
            Console.WriteLine(c.FirstName + " " + c.LastName);
        }
    }
}
登入後複製

在此範例中,JSONTextReader 首先檢查令牌類型。如果遇到物件開始標記,它會使用 JsonSerializer 將目前物件反序列化為 Contact 實例。然後,每個聯絡人的名字和姓氏都會印到控制台。

結論

透過利用 JsonTextReader 中的 SupportMultipleContent 設置,您可以有效地解析大型且格式錯誤的 JSON 檔案。網。該技術可實現高效的記憶體使用並處理複雜的 JSON 結構,使其成為處理 JSON 資料流的理想選擇。

以上是如何使用 Json.NET 高效解析 .NET 中大型且格式錯誤的 JSON 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板