2015-08-08 126 views
-1
{ 
    "Location": "St Kilda", 
    "Name": "Movie Plaza theatre", 
    "Day": ["Sunday","Monday","Tuesday","Wednesday","Tuesday","Friday","Saturday"] 
} 

我無法反序列化此Json。誰能幫我 ?反序列化Json文件

+0

把你的東西放在這裏。 –

+0

可用的教程/示例/現有問題過多:無功而返。 – user2864740

+1

你必須展示你自己的一些努力(例如,你試過的代碼),並告訴我們什麼不行,以及如何。 – hoijui

回答

1

創建類的JSON,如下

public class RootObject 
{ 
    public string Location { get; set; } 
    public string Name { get; set; } 
    public List<string> Day { get; set; } 
} 

然後寫如下的一些代碼從JSON獲取數據

JObject json = JObject.Parse(your json string); 
RootObject obj = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(json); 

更新:

Console.WriteLine(obj.Location); 
Console.WriteLine(obj.Name); 

foreach (var d in obj.Day) 
{ 
    Console.WriteLine(d); 
} 
+0

是的,它的工作原理。你能告訴我如何顯示這個Json文件的數據?因爲我只能顯示這個列表的類型。 – Sam

+0

我無法得到你。你想要什麼 ? –

+0

我在foreach中使用console.writeline來顯示Json文件中的數據,我可以獲取位置和名稱的數據,但我只獲取列表的類型而不是此列表中的數據。 – Sam

0

我認爲,你可以使用C#動態類型來簡化事情。這種技術也使得重構更簡單,因爲它不依賴魔術字符串。

JsonConvert.DeserializeObject 使用JsonConvert.DeserializeObject<RootObject>(string json);

創建的JSON 2 C#類。它如何read here

如果JSON數據中缺少的任何字段應該簡單地留空。

2.反序列化JSON與Json.NET 您還可以閱讀how deserializing JSON with Json.NET

JsonConvert.Populate 您還可以使用JsonConvert.Populate(json,obj); 即JSON是JSON字符串,obj是目標對象

瞭解更多關於PopulateObject

希望這有助於很好。