我使用JSON.NET反序列化来自HTTP的响应,但我遇到了问题。这是因为响应发送结果没有属性名称 我有类似的东西
{"人" {"千斤顶" {"条件":"良好""版本" :" 1.0.5"}"吉姆" {"条件":"坏""版本&#34 ;: " 1.0.5"}},"和德":14,"法堂":"苹果"}
我怎么能把它放在课堂上。
不是:当我粘贴作为类创建jim和jack类时,json结果可以有超过jack和jim。鲍勃和迈克很快就会到来。
抱歉,兄弟。我只是在写我的努力,但我的女儿醒了。去送她回去睡觉了。我的意思是,经过搜索" good"在词典中我想回去找" jack"。var values = from value in dictioanries.values
where value.condition ="good"
select new { value.condition, value.version }
好的,我搜索了这些词典,其中有两个(杰克和吉姆)我想知道我在哪个字典下找到了#34;好"
答案 0 :(得分:2)
你没有一个类,因为你有一个字符串和对象的字典。如果执行以下操作,则应该能够正确反序列化:
public class PeopleResponse
{
public Dictionary<string, Info> people { get; set; }
public string hede { get; set; }
public string hodo { get; set; }
}
public class Info
{
public string condition { get; set; }
public string version { get; set; }
}
从那里,您应该可以:
var results = JsonConvert.DeserializeObject<PeopleResponse>("{myJSONGoesHere}");
编辑:根据您更新的问题,如果您想获取其状况为“良好”的所有名称,您可以执行以下操作(假设您的反序列化对象被称为results
:
var goodStuff = from p in results.people
where p.Value.condition.ToLower() == "good"
select p.Key;
当然,您可以获得p
而不是p.Key
,这将返回整个键/值对。