日期:2014-05-16  浏览次数:20742 次

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);