C# 如何按列引用JSON对象元素
我正在从web上的示例中收集一些代码,这些代码获取一行数据(从SP返回的行),并使用JSON对象序列化程序将其发送回客户端aspx javascript页面。为了让您了解数据是如何构建的C# 如何按列引用JSON对象元素,c#,json,object,serialization,C#,Json,Object,Serialization,我正在从web上的示例中收集一些代码,这些代码获取一行数据(从SP返回的行),并使用JSON对象序列化程序将其发送回客户端aspx javascript页面。为了让您了解数据是如何构建的 public static string GetLogEntry(DataTable table, string id) { JavaScriptSerializer jss = new JavaScriptSerializer(); List<Dictio
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;
所以我想做的是通过列名访问元素,就像我在其他示例中看到的那样
alert(json.columnName) //returns undefine.
提前感谢您的时间。根据ajax调用的方式,success处理程序中的变量
json
已经是javascript对象文本
function successHandler(resp){
var data = resp;
$.each(data, function (index, row){
var key;
foreach (key in row){
if (row.hasOwnProperty(key)){
console.log(key, row[key]);
}
}
});
}
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "some url",
data: "{}",
dataType: "json"
}).done(successHandler);
如果您可以将服务器返回的数据发布,这将非常有帮助。这将使我们了解json
的结构
因此,不需要使用eval
或解析服务器响应
顺便说一句,世界上根本就没有所谓的。JSON只是一种序列化和传递javascript对象文本的格式。以下:
var data = new List<Dictionary<string, object>>
{
new Dictionary<string, object>
{
{ "Col1", 1.0}, { "Col2", 2.0}
},
new Dictionary<string, object>
{
{ "Col1", 1.1}, { "Col2", 2.2}
},
};
jQueryAjax将自动解析这个字符串,并将结果数组传递给成功处理程序。为了实现这一点,需要告诉jquery期望
json
数据,服务器需要返回一个带有mimetypeapplication/json的字符串;charset=utf-8
在这一信息丰富的响应中投入了大量精力。正如@Amith所说,我不需要使用eval
。在var obj=jQuery.parseJSON(json)行之后代码>我能够像这样获得所需的数据:警报(obj[0].columnName)
。和警报(json.columnName)
返回未定义。更多详细信息:json数据以以下格式返回:[{\'columnName\':variable,\'columnName\':variable}]“
var data = new List<Dictionary<string, object>>
{
new Dictionary<string, object>
{
{ "Col1", 1.0}, { "Col2", 2.0}
},
new Dictionary<string, object>
{
{ "Col1", 1.1}, { "Col2", 2.2}
},
};
"[{\"Col1\":1,\"Col2\":2},{\"Col1\":1.1,\"Col2\":2.2}]"