解析Web服务的结果

时间:2013-02-03 21:21:50

标签: c# parsing service deserialization

我有一个Web服务,在调用它并获取结果后,我无法将结果放在一个对象数组中。

我正在使用C#代码并寻找一种方法来反序列化这些结果,并希望有人可以帮助或告诉我应该采用的方式。

注意:单引号标记被\u2019替换,那么是否有一个表格可以在返回的结果中找到特殊字符unicodes,以便我可以替换它们?

谢谢..

1 个答案:

答案 0 :(得分:1)

我使用JavaScriptSerializer来处理JSON数据。 (通常,我添加了这个custom converter我从TekPub中学到了将DateTimes格式化为一个很好的字符串。)

它非常易于使用:

    using (var web = new WebClient())
    {
        var url = "http://[fill in your url here]";
        var jsonStr = web.DownloadString(url);
        var serializer = new JavaScriptSerializer();

        IDictionary<string, object> objGraph = (IDictionary<string, object>)serializer.DeserializeObject(jsonStr);

        Console.WriteLine(objGraph["has_next"]);
        Console.WriteLine(((Object[])objGraph["object_list"]).Length);
    }

在示例代码中,我将结果作为动态对象使用,但如果您知道结构,则可以将结果映射回类型化对象。