2016-09-28 44 views
0

这里我返回了数据集作为Json结果。当我使用'$ .each'函数时,我没有得到值。如何从Json结果中获取数据集值

这是我的javascript:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"> 
</script> 
<script> 
    // TODO: Replace with the URL of your WebService app 
    $(window).load(function() { 
    var tableName="customtable.Testing"; 
    alert("Script Running"); 
    $.ajax({ 
     type: "POST", 
     url: "/CMSPages/TestingService.asmx/GetAllCustomTableData", 
     data: "{ 'customTableName': '" + tableName + "' }", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function(data) { 
     var results = data.d; 
      $.each(results, function(i, result) { 
      alert(result.ItemID); 
      }); 
      }, 
      error: function (jqXHR, textStatus, errorThrown) { 
      alert(jqXHR.responseText);  
      } 
     }); 
    }); 
</script> 

这是我的JSON响应:

{"d":"{\"NewDataSet\": \r\n[\r\n{\"Table\": \r\n[\r\n{\"ItemID\":8,\"ItemGUID\":\"5ef65845-1910-4f71-be3e-c2c0a1e47105 
\",\"ItemModifiedWhen\":\"\\/Date(1471582785000)\\/\",\"ItemOrder\":null,\"Email\":\"[email protected] 
.edu\",\"ItemCreatedWhen\":\"\\/Date(1471582785000)\\/\",\"ItemCreatedBy\":53,\"ItemModifiedBy\":53, 
\"FirstName\":\"Kewchang\",\"LastName\":\"Lee\"}\r\n]\r\n}\r\n]\r\n}\r\n"} 
+2

虽然这不是有效的JSON。您的测试服务需要输出适当的JSON。 –

+0

你有没有试过在data.d上调用Json.parse?所以你会得到'var results = Json.parse(data.d)'? –

回答

0

试试这个,而不是每个funcation

for (var key in result) { 
    if (result.hasOwnProperty(key)) { 
     alert(key + " -> " + result[key]); 
    } 
} 
0

看来,JSON结果不是一个数组。在尝试迭代它之前,您应该检查结果是否实际上是一个数组。

if (Array.isArray(data.d)) { 
    $.each(data.d, function (i, result) { 

    }); 
} 
else { 

} 
+0

这是一个不是数组 – sadasiva