反序列化没有属性名称.Net的json

时间:2016-05-15 19:38:06

标签: .net json deserialization

我使用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;好"

1 个答案:

答案 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,这将返回整个键/值对。