在c#中解析服务器响应

时间:2015-10-07 15:43:10

标签: c#

我正在尝试解析服务器响应,这是一个字符串

{"list":["23","87","34","67","34","3"]}

这就是我试图解析它的方法,但它不起作用。

string resultContent = response.Content.ReadAsStringAsync().Result;
var r = new JavaScriptSerializer().Deserialize<List<string>>(resultContent);

我试图找到一个例子,但通常json有不同的结构,所以示例不起作用。

1 个答案:

答案 0 :(得分:3)

问题是服务器响应实际上是一个字符串列表的JSON对象,而是一个具有list属性的对象,它是一个字符串数组

虽然可以使用类似Json.Net的内容将数据读入您可以在程序上访问的对象,但我不知道如何在BCL中执行此操作。< / p>

因此,最简单的解决方案是定义一个与数据定义匹配的类,并将其反序列化为该数据。如果服务器以各种结构返回数据,那么最好使用我上面提到的Json.Net库,因为为所有内容创建类型定义很快就会变得乏味。

public sealed class ResponseModel
{
    public String[] list { get; set; }
}

用法与您已经使用的方法相同,只需将List<string>替换为ResponseModel,如下所示:

var r = new JavaScriptSerializer().Deserialize<ResponseModel>(resultContent);