帮助在 .NET 中解析 Bit.ly 的 JSON 结果

发布于 2024-08-24 03:09:20 字数 546 浏览 7 评论 0原文

来自 .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" 
}

From a .NET assembly (non-web app)...

The normal response from Bit.ly is somewhat in the form of below. What is recommended way of consuming that result so that I can easily get the value of the shortUrl field? Since the original URL comes back as a "key", building a model class to deserialize it to and using LINQ does not seem to make sense. In Javascript, a simple .eval would work but what is the recommended approach in .NET since the model would be dynamic?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瘫痪情歌 2024-08-31 03:09:20

.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/"] );

.NET provides a mechanism similar to eval (JavaScriptSerializer). If you just need to parse out a few values the code would look like this:

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" ];

If you'll be accessing the other data, you can create your own DTO and have the serializer map the JSON data to that.

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/"] );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文