【问题标题】:iterating through objects of response JSON遍历响应 JSON 的对象
【发布时间】:2014-10-30 10:44:49
【问题描述】:

我正在做一个查询并得到这样的结果,我把它放入一个 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>
}

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

【问题讨论】:

  • 你应该研究像 JSON.NET 这样的库来为你做这种反序列化

标签: c# json hashtable


【解决方案1】:

您可以使用 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

【讨论】:

    【解决方案2】:

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

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

    然后使用 Json.NET 将结果节点解析为List&lt;Result&gt;。网上有很多关于如何使用 Json.NET 库的文档。

    希望对您有所帮助, 抢

    【讨论】:

      猜你喜欢
      • 2019-02-11
      • 2015-01-11
      相关资源
      最近更新 更多