json数据的解析

Alexander_QQ 2012-06-13 09:37:03
我现在有从服务器得到的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)??


...全文
60 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alexander_QQ 2012-06-13
  • 打赏
  • 举报
回复
谢谢各位大侠,小弟解决了,用eval。即时结贴。
乌镇程序员 2012-06-13
  • 打赏
  • 举报
回复
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);
001007009 2012-06-13
  • 打赏
  • 举报
回复
也可以采用 eval

var d = {"teacher":[
{
"id":"1",
"teachername":"\u6559\u5e08A",
"subject_grade":"{\"subject\":[5],\"grade\":[18,19]}",
"mastername":"\u73ed\u4e3b\u4efbA"
}
]}
alert(eval('('+d.teacher[0].subject_grade+')').subject[0])
三石-gary 2012-06-13
  • 打赏
  • 举报
回复
加上引号它就是字符串了。。和上面一样。。只有先把subject_grade解析出来。。在对字符串做处理。。
挨踢直男 2012-06-13
  • 打赏
  • 举报
回复
"subject_grade":"{\"subject\":[5],\"grade\":[18,19]}",
的确有问题

你可以这样解析

var o = {"subject_grade":"{\"subject\":[5],\"grade\":[18,19]}"}
var sg = eval('('+ o.subject_grade +')')
001007009 2012-06-13
  • 打赏
  • 举报
回复
"subject_grade":{"subject":[5],"grade":[18,19]}

外面加上 引号 就是 字符串了。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧