【发布时间】:2014-02-23 22:02:31
【问题描述】:
我正在尝试反序列化以下 JSON 对象:
"{\"results\":[{\"isError\":true,\"result\":null,\"messages\":[{\"type\":0,\"text\":\"Legal Entity is required when a Cost Center Code is specified: External Code 1 = cc3f25a7-0e8a-4e1c-8e18-c83c520ff3d7;\"}]}],\"isError\":true,\"sessionId\":null,\"tk\":null,\"tp\":null}"
我有以下课程: [数据合约]
public class BigCenterResponse
{
[DataMember(Name = "isError")]
public bool IsError { get; set; }
[DataMember(Name = "sessionId")]
public string SessionID { get; set; }
[DataMember(Name = "results")]
public List<Result> Responses { get; set; }
}
[DataContract]
public class Message
{
[DataMember(Name = "type")]
public int Type { get; set; }
[DataMember(Name = "text")]
public string Text { get; set; }
}
[DataContract]
public class Result
{
[DataMember(Name = "isError")]
public bool IsError { get; set; }
[DataMember(Name="messages")]
public List<Message> Messages { get; set; }
}
以及以下实现:
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
var resp = reader.ReadToEnd();
var serializer = new JavaScriptSerializer();
var obj = serializer.Deserialize<BigCenterResponse>(resp);
obj.Responses = serializer.Deserialize<List<Result>>(resp);
return obj;
}
我能够正确设置 IsError,但未填写响应。我试过反序列化 BigCenterResponse 并尝试分别反序列化结果部分(如上所示)。两者似乎都不起作用。
【问题讨论】:
标签: .net json javascriptserializer