json数据的解析
我现在有从服务器得到的json数据如下
{"teacher":[
{
"id":"1",
"teachername":"\u6559\u5e08A",
"subject_grade":"{\"subject\":[5],\"grade\":[18,19]}",
"mastername":"\u73ed\u4e3b\u4efbA"
}
]}
重点是"subject_grade"这一个对象,它下面又有两个对象——subject和grade。但是我觉得他这个格式给错了,应该是"subject_grade":{"subject":[5],"grade":[18,19]}这样才对。为什么他返回的数据里大括号外面有双引号呢??如果这个格式是正确的,那么该怎么解析呢(需要解析出subject和grade)??
------解决方案--------------------"subject_grade":{"subject":[5],"grade":[18,19]}
外面加上 引号 就是 字符串了。
------解决方案--------------------"subject_grade":"{\"subject\":[5],\"grade\":[18,19]}",
的确有问题
你可以这样解析
var o = {"subject_grade":"{\"subject\":[5],\"grade\":[18,19]}"}
var sg = eval('('+ o.subject_grade +')')
------解决方案--------------------加上引号它就是字符串了。。和上面一样。。只有先把subject_grade解析出来。。在对字符串做处理。。
------解决方案--------------------JScript code
var data = {"teacher":[
{
"id":"1",
"teachername":"\u6559\u5e08A",
"subject_grade":"{\"subject\":[5],\"grade\":[18,19]}",
"mastername":"\u73ed\u4e3b\u4efbA"
}
]}
var subject_grade = eval('(' + data.teacher[0].subject_grade + ')');
alert(subject_grade.subject);