【发布时间】:2012-04-23 16:24:09
【问题描述】:
这是 JSON 字符串 -
"{\"body\":[\"VAL1\",\"VAL2\"],\"head\":{\"result\":true,\"time\":3.859}}"
这些是我的课 -
[Serializable]
public class ResponseHead
{
public bool result {get; set;}
public float time {get; set;}
}
[Serializable]
public class ResponseBody
{
public string[] body {get; set;}
}
[Serializable]
public class ResponseObj
{
public ResponseBody body {get; set;}
public ResponseHead head { get; set; }
}
还有代码 -
JavaScriptSerializer serializer = new JavaScriptSerializer();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseText = streamReader.ReadToEnd();
}
ResponseObj response_obj = new ResponseObj();
ResponseHead rhead = new ResponseHead();
rhead = serializer.Deserialize<ResponseHead>(responseText); //not working
生成的 ResponseHead 对象具有值:
result: false
time: 0.0
它无法正确映射值,但我不知道为什么。 ResponseBody 值正确输入。
请帮忙!
【问题讨论】:
-
如果您将值放在 json 中的字符串中,您将看到它们
-
[Serializable] 对您之前的问题有效吗? stackoverflow.com/questions/10253436/…
-
不,我已经添加了在那里工作的答案。这只是类型的改变。不过感谢您的回答,它可能使我免于将来的错误。
标签: c# asp.net json javascriptserializer