2016-09-28 93 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; 
}