将奇怪的JSON响应解析为List<string>

3

我正在使用RestSharp调用一个webservice,并成功地获得了我的响应,但是回传的数据格式有点奇怪。它是一串GUID的列表,而这也正是我需要的,但它们以布尔对象或其他什么东西的形式返回。请看:

"{
    \"5916DF70-C413-4132-90F7-C365B0FAA26D\" : true,
    \"B5F0FF80-F8D1-40F7-8313-045F02D37FAA\" : true,
    \"D859A904-EDAE-4D87-9ADC-8FB5F3B47B02\" : true
}"

我该如何解析它,以便只获取包含GUID的列表?

1
这是标准的JSON格式,带有转义引号。你说的“奇怪格式”是什么意思? - user47589
我不担心转义问题,但通常你会期望 { name : value } 这样的格式,因为这很容易序列化成一个类。而在这种情况下,属性名实际上是我需要提取为一个列表的值 - 理解吗? - Slee
1个回答

14

你无法将响应解析为列表,它更像是一个字典。

var result = JsonConvert.DeserializeObject<Dictionary<Guid, bool>>(json);
var resultlist = result.Select(c => c.Key).ToList();   

哦,我太习惯于寻找一个完整的对象来反序列化到一个类中了,以至于我错过了显而易见的东西,谢谢。 - Slee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接