代码之家  ›  专栏  ›  技术社区  ›  tpow

使用JQuery从.NETWeb服务获取JSON

  •  0
  • tpow  · 技术社区  · 14 年前

    我正在使用FullCalendar模块(很好,顺便说一句),从数据库填充事件时遇到了问题。我收到一个由C#web服务创建的JSON字符串。然而,当我试图解析它并打印出测试警报时,除了“未定义”之外什么也得不到。

    {d="[{"ScheduleRecId":9,"EmployeeScheduled":"3","TimeStart":"\/Date(1285601677000)\/","TimeEnd":"\/Date(1285601677000)\/","UpdatedBy":"4","LastUpdate":"\/Date(1285601677000)\/","Started":true,"Finished":false}]"}
    

     success: function(doc) {
                  alert(doc)    //echos "Object oject"
                  alert(doc[0]) //echos "undefined"
                  alert(doc.EmployeeScheduled) //echos "null"
     }
    

    我也试过用JSON.parse文件而eval()运气不太好。如何访问此对象的属性?

    更新: 尼克回答后,我决定试试 alert(doc.d[0]); 回音 [

    我注意到如果我试着 alert(doc.d[5]); h 让我相信d博士是一个角色阵列。我想我可以读入并解析它,但是不应该有一种更干净的方法来访问属性吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Nick Craver    14 年前

    因为它是从ASP.NET3.5或更高看起来,你需要 d 属性,如下所示:

    success: function(doc) {
        alert(doc.d[0].EmployeeScheduled);
    }
    

    这是因为根对象有一个属性, d级 [0] 第一个入口,然后 .EmployeeScheduled 为了得到那份财产。

        2
  •  0
  •   tpow    14 年前

     success: function(obj) {
    
          var schedules = (eval(obj.d));
    

    然后我可以捕捉到这样的属性:

    var event = {
                    id: schedules[0].ScheduleRecId,
                }