迭代响应JSON的对象

时间:2014-09-05 13:02:12

标签: c# json hashtable

我正在进行查询并得到类似这样的结果,我将其放入Hashtable中

{"success":"true", "result":[{"type":"email", "address":"aaasd@asd.com"},{"type":"email", "address":"aaasddee@dse.com"}]}

然后我做

return hashtable["result"];

所以我只剩下这个了

[{"type":"email", "address":"aaasd@asd.com"},{"type":"email", "address":"aaasddee@dse.com"}]

但我的问题是我不知道如何遍历"结果"填写我自己的对象。我正在寻找解决方案,但我找到的唯一答案是使用

foreach(DictionaryEntry entry in searchResult) {
//do something<br>
}

当我像这样迭代Hashtable时,我只能使用属性entry.Keyentry.Value,但我不能说出我需要的特定键的值。欢迎任何建议。

2 个答案:

答案 0 :(得分:0)

创建一个与结果集合的签名匹配的类,如:

public class Result
{
  public string Type { get; set; }
  public string Address { get; set; }
}

然后使用Json.NET将结果节点解析为List<Result>。有很多关于如何使用Json.NET库的文档。

希望有所帮助, 罗布

答案 1 :(得分:0)

您可以使用JSON.NET进行反序列化,如下所示: -

var result = JsonConvert.DeserializeObject<dynamic>(searchResult);

您可以像下面这样创建您的课程: -

public class RootObject
{
    public string type { get; set; }
    public string address { get; set; }
}

有关更多信息: -

http://james.newtonking.com/json/help/index.html?topic=html/SerializingJSON.htm