![](/img/trans.png)
[英]newtonsoft json deserialization error handling: partial deserialization
[英]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.