Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用属性名.Net反序列化json_.net_Json_Deserialization - Fatal编程技术网

不使用属性名.Net反序列化json

不使用属性名.Net反序列化json,.net,json,deserialization,.net,Json,Deserialization,我正在使用JSON.NET对来自HTTP的响应进行反序列化,但我遇到了一个问题。这是因为发送结果的响应没有属性名称 我有类似的东西 {“人”:{“杰克”:{“条件”:“好”,“版本”:“1.0.5”},“吉姆”:{“条件”:“坏”,“版本”:“1.0.5”},“黑德”:14,“豪多”:“苹果”} 我怎么能把这个放在课堂上呢 不是:当我粘贴为一个类时,json结果可能比jack和jim多,它创建了jim和jack类。鲍勃和迈克马上就来 对不起,兄弟。我正在写我的作品,但我女儿醒了。去送她回去睡觉。

我正在使用JSON.NET对来自HTTP的响应进行反序列化,但我遇到了一个问题。这是因为发送结果的响应没有属性名称 我有类似的东西

{“人”:{“杰克”:{“条件”:“好”,“版本”:“1.0.5”},“吉姆”:{“条件”:“坏”,“版本”:“1.0.5”},“黑德”:14,“豪多”:“苹果”}

我怎么能把这个放在课堂上呢

不是:当我粘贴为一个类时,json结果可能比jack和jim多,它创建了jim和jack类。鲍勃和迈克马上就来


对不起,兄弟。我正在写我的作品,但我女儿醒了。去送她回去睡觉。我的意思是,在字典里搜索“好”之后,我想回去找“杰克”


好的,我在这里搜索了字典,其中有两个(杰克和吉姆),我想知道我在哪一个字典中找到了“good”

你没有一个类,就像你有一个字符串和对象的字典一样。如果执行以下操作,则应能够正确反序列化:

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; }
}

当然,您可以只获取
p
而不是
p.Key
,这将返回整个键/值对。

复制json,打开VS,然后
编辑/粘贴特殊/粘贴json作为类
…您能详细说明您的评论吗?JSON响应总是不同的吗?你在这方面有困难吗@ManuelCalavera给出了你的json,它确实是这样工作的。。。你可以试着表现出你的努力,而不仅仅是回应。这不起作用。对不起,兄弟。我正在写我的作品,但我女儿醒了。去送她回去睡觉。我的意思是,在字典里搜索“好”之后,我想回去找“杰克”。var values=从dictionAnries.values中的值,其中value.condition=“good”选择新的{value.condition,value.version};好的,我在这里搜索了字典,有两个(杰克和吉姆),我想知道我在哪一个字典中找到了“good”@ManuelCalavera:我已经更新了我的答案,以显示LINQ查询在这种情况下是如何工作的。
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}");
var goodStuff = from p in results.people 
                where p.Value.condition.ToLower() == "good" 
                select p.Key;