0

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

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

注意:单引号被替换为\u2019所以是否有一个特殊字符 unicode 表可以在返回的结果中找到以便我可以替换它们?

谢谢..

4

1 回答 1

1

我使用 JavaScriptSerializer 处理 JSON 数据。(通常,我会添加我从 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);
    }

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

于 2013-02-03T22:42:28.933 回答