我有一個名爲config.json的文件。下面是它的內容:C#:將JSON原語反序列化爲.NET複雜類型
{
dataSources:
[
"http://www.blahblah.com/blah",
"http://www.blahblah.com/blah2",
...
],
skills:
[
{
"name": "foobaris",
"regex": "pattern"
},
...
]
}
我要出這個數據的創建Config
對象一樣容易和簡潔越好。 Config
被定義爲:
public class Config
{
public IEnumerable<Uri> DataSources { get; set; }
public IEnumerable<KeyValuePair<string, Regex>> Skills { get; set; }
}
什麼是最簡單的路線?
因爲Config.DataSources
是Uri
秒,.Skills
有Regex
S,我現在必須derserialize(即RawConfig rawConfig = new JavaScriptSerializer().Deserialize<RawConfig>(configFileContents)
)配置文件到這個結構第一:
public struct RawConfig
{
public IEnumerable<string> DataSources { get; set; }
public IEnumerable<RawConfigSkill> Skills { get; set; }
}
public struct RawConfigSkill
{
public string Name { get; set; }
public string Regex { get; set; }
}
...然後是結構轉換爲Config
(例如new Config(rawConfig)
)。
我可以無效嗎?