【问题标题】:Help with parsing JSON result from Bit.ly in .NET帮助在 .NET 中解析来自 Bit.ly 的 JSON 结果
【发布时间】:2010-03-02 19:19:20
【问题描述】:

来自 .NET 程序集(非 Web 应用程序).​​..

Bit.ly 的正常响应有点如下形式。使用该结果的推荐方法是什么,以便我可以轻松获取 shortUrl 字段的值?由于原始 URL 作为“键”返回,因此构建模型类以将其反序列化并使用 LINQ 似乎没有意义。在 Javascript 中,一个简单的 .eval 可以工作,但在 .NET 中推荐的方法是什么,因为模型是动态的?

{ 
    "errorCode": 0, 
    "errorMessage": "", 
    "results": 
    { 
        "http://www.google.com/": 
        { 
            "hash": "xxxxxx", 
            "shortKeywordUrl": "", 
            "shortUrl": "http://bit.ly/xxxxx", 
            "userHash": "1F5ewS" 
        } 
    }, 
    "statusCode": "OK" 
}

【问题讨论】:

    标签: .net json bit.ly


    【解决方案1】:

    .NET 提供类似于 eval (JavaScriptSerializer) 的机制。如果您只需要解析出一些值,代码将如下所示:

    var serializer = new JavaScriptSerializer();
    var values = serializer.Deserialize<IDictionary<string,object>>( jsonData );
    var results = values["results"] as IDictionary<string,object>;
    var google = results["http://www.google.com/"] as IDictionary<string,object>;
    var shortUrl = results[ "shortUrl" ];
    

    如果您要访问其他数据,您可以创建自己的 DTO 并让序列化程序将 JSON 数据映射到该数据。

    public class Bitly
    {
        public string hash{ get; set; }
        public string shortKeywordUrl{ get; set; }
        public string shortUrl{ get; set; }
        public string userHash{ get; set; }
    }
    
    var google = serializer.ConvertToType<Bitly>( results["http://www.google.com/"] );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多