簡體   English   中英

處理 Json 多行反序列化

[英]Handling Json Deserialization with multiple lines

我的應用程序期望 Json 文件有兩種不同的結構。 一個文件,其中每一行是一個完整的 json 和其他文件是 Json 文件。 例如:一個文件將具有這種結構

{"Logging": {"LogLevel": {"Default": "Warning", "System": "Warning", "Microsoft": "Warning" }}}

和其他具有這種結構的文件:

{"Logging": {"LogLevel": {"Default": "Warning",
      "System": "Warning",
      "Microsoft": "Warning"
    }}}

我下面的代碼進行反序列化,它適用於第一個結構,但對於其他文件說錯誤失敗

讀取令牌時意外結束。 小路 ''。”}

我的代碼:

foreach( var line in lines )
            {
   var data = JsonConvert.DeserializeObject<JObject>( line);}

我想知道如何解決這個問題,以便它處理兩種類型的文件?

您正在將 JSON 文件的每一行讀入嘗試解析每一行的數據變量中。

因此它嘗試解析第 1 行,即{"Logging": {"LogLevel": {"Default": "Warning", . 並且由於這不是有效的 JSON object 解析失敗。

而是使用File.ReadAllText將整個文件讀入單個字符串,然后解析該字符串。 或者簡單地將字符串數組重新連接成一個字符串:

 var data = JsonConvert.DeserializeObject<JObject>(string.Join(Environment.NewLine,lines));}

暫無
暫無

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

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