簡體   English   中英

外部json文件上的json.net序列化/反序列化

[英]json.net serialization/deserialization on an external json file

我正在VS2012中使用c#,並已安裝json.net文件以處理存儲在外部文件(1.json)中的json字符串的反序列化。 作為一個新手,我遇到了一種情況,我想從一個json字符串中提取稱為score和avanage score的信息。 見下文:

{"LEVEL": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"score": 1,
"average score": 2 }

逐步執行該過程后,我從調試器獲得的輸出顯示該流僅獲取json文件的第一部分(從第一個開方括號到閉方括號的所有內容),因此我無法獲得分數和平均分數。 這是我目前嘗試提取此信息的內容...

using (var sr = new StreamReader(File.OpenRead(filename)))
{
    levelData = sr.ReadLine();
    var stats = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(levelData);
}

誰能提供有關我如何提取此信息的任何建議? 任何幫助將不勝感激。

問題是您正在逐行讀取文件和反序列化數據。 您無法使用json來完成,因為它是整個結構(如xml)。

相反,您應該反序列化整個文件:

var json = File.ReadAllText(filename);
var stats = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(json);

暫無
暫無

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

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