我正在从网络上的样本中抓取一些代码,这些代码采用单行数据(从 SP 返回的行)并使用 JSON 对象序列化程序将其发送回客户端 aspx javascript 页面。为了让您了解如何构建数据...
public static string GetLogEntry(DataTable table, string id)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in table.Select("UID =" + id))
// foreach (DataRow dr in table.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in table.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
var json = jss.Serialize(rows);
return json;
我知道我在这里有一个不必要的循环,因为这个特定的 SP 仅设计为返回单行。我将在下一章中对此进行研究。我真正的问题是我不明白如何提取我需要的数据。
我的客户端循环正在返回数据,但我很难单独引用特定的列数据。
success: function (json) { //ajax call success function
var obj = jQuery.parseJSON(json); // this line isn't really doing anything right now
eval("var datax = " + json);
for (var propertyName in $(datax)[0]) {
alert('data: ' + propertyName ); } //this returns only the column names
$(data).each(function (key, val) {
for (var propertyName in val) {
alert('data: ' + val[propertyName]); }
所以我想要做的是通过列名访问一个元素,就像我在其他示例中看到的那样......
alert(json.columnName) //returns undefine.
在此先感谢您的时间。