这是我从流中获得的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();
答案 0 :(得分: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/