0

这是我从流中得到的 JSON,并转换为字符串。

"{\"data\":[{\"thread_id\":\"1111155552222\",\"recipients\":[123123,456456],\"message_count\":2100},{\"thread_id\":\"1111155553333\",\"recipients\":[123124,456457],\"message_count\":4851},{\"thread_id\":\"1111155554444\",\"recipients\":[123125,456458],\"message_count\":435}]}"

public class DataContainer
{
    List<data> data { get; set; }
}

public class data
{
    public string thread_id { get; set; }
    public long[] recipients { get; set; }
    public int message_count { get; set; }
}

JavaScriptSerializer ser = new JavaScriptSerializer();

DataContainer data = ser.Deserialize<DataContainer>(json);

我的数据为空,它似乎没有反序列化。json的业余爱好者。已经为此头疼了。

谢谢!


获取 JSON 字符串

WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader reader = new StreamReader(stream, encode);
string json = reader.ReadToEnd();
4

1 回答 1

0

看来您的“您从流中获得并转换为字符串的 JSON ”已被序列化两次。

ASP.NET 自动 JSON 序列化您的服务方法的响应,即使它们的结果是一个对象或对象集合

您应该能够直接使用它而无需序列化/反序列化它。

就像是:

//Assuming GetJson() returns a JSON string, which you can use directly 
DataContainer data = GetJson();

检查这个:http ://encosia.com/asp-net-web-services-mistake-manual-json-serialization/

还有这个:从 JSON 读取,未显示数据

于 2012-09-13T15:42:50.117 回答