我正在尝试解析服务器响应,这是一个字符串
{"list":["23","87","34","67","34","3"]}
这就是我试图解析它的方法,但它不起作用。
string resultContent = response.Content.ReadAsStringAsync().Result;
var r = new JavaScriptSerializer().Deserialize<List<string>>(resultContent);
我试图找到一个例子,但通常json有不同的结构,所以示例不起作用。
答案 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);