2016-09-28 143 views
0

我有一個Json字符串,我反序列化並轉換成有2個鍵的字典。我感興趣的是它的值(key)(服務),它包含一系列服務,每個服務都有自己的屬性,所有的服務都用逗號和括號分隔。我希望能夠遍歷這些服務並獲得每個服務的屬性。我想正則表達式會做,但我不能找到一個匹配的模式 `需要從json字符串中提取屬性和值(S)

responseDictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>(response); 
var services = responseDictionary["services"] 

我找回價值具有這種模式

"[\r\n {\r\n \"name\": \"extract\",\r\n \"type\": \"FeatureServer\"\r\n },\r\n {\r\n \"name\": \"extract\",\r\n \"type\": \"MapServer\"\r\n }\r\n]" 

有2個服務,

提取物 - --of類型特徵服務器。

提取物---類型地圖服務器的

我能做些什麼與thier類型讓那些2個服務?

回答

2

格式化後,您的JSON的樣子:

[{ 
    "name": "extract", 
    "type": "FeatureServer" 
}, 
{ 
    "name": "extract", 
    "type": "MapServer" 
}] 

而且可以映射到類:

public class Service 
{ 
    public string name { get; set; } 
    public string type { get; set; } 
} 

所以喲可以反序列化這樣的:

List<Service> services = JsonConvert.DeserializeObject<List<Service>>(response); 

及迴路各服務:

foreach(Service s in services) 
{ 
    string name = s.name; 
    string type = s.type; 
}