[英]JavaScriptSerializer().Serialize(Entity Framework object)
May be, it is not so problematic for you. 可能是的,这对您来说没有太大问题。 but i'm trying first time with json serialization.
但是我正在尝试第一次使用json序列化。 and also read other articles in stackowerflow.
并阅读stackowerflow中的其他文章。
I have created Entity Framework data model. 我已经创建了实体框架数据模型。 then by method get all data from object:
然后通过方法从对象获取所有数据:
private uqsEntities _db = new uqsEntities();
//get all data from table sysMainTableColumns where tableName=paramtableName
public List<sysMainTableColumns> getDataAboutMainTable(string tableName)
{
return (from column in _db.sysMainTableColumns
where column.TableName==tableName
select column).ToList();
}
my webservice: 我的网络服务:
public string getDataAboutMainTable()
{
penta.DAC.Tables dictTable = new penta.DAC.Tables();
var result = dictTable.getDataAboutMainTable("1");
return new JavaScriptSerializer().Serialize(result);
}
and jQuery ajax method 和jQuery ajax方法
$('#loadData').click(function() {
$.ajax({
type: "POST",
url: "WS/ConstructorWS.asmx/getDataAboutMainTable",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$("#jsonResponse").html(msg);
var data = eval("(" + msg + ")");
//do something with data
},
error: function(msg) {
}
});
});
Fails (from fairbug): 失败(来自Fairbug):
missing ] after element list [Break on this error] var data = eval("(" + msg + ")");
ajax Response (by Firebug if I remove var data = eval("(" + msg + ")")
): ajax响应(如果我删除
var data = eval("(" + msg + ")")
则由Firebug发出):
{"d":"[{\"ID\":1,\"TableName\":\"1\",\"Name\":\"d\",\"FullName\":\"f\",\"Type\":\"nvarchar(50)\",\"MeasurementUnit\":\"t \",\"EntityState\":2,\"EntityKey\":{\"EntitySetName\":\"sysMainTableColumns\",\"EntityContainerName\":\"uqsEntities\",\"EntityKeyValues\":[{\"Key\":\"ID\",\"Value\":1}],\"IsTemporary\":false}},{\"ID\":2,\"TableName\":\"1\",\"Name\":\"e\",\"FullName\":\"e\",\"Type\":\"int\",\"MeasurementUnit\":\"r \",\"EntityState\":2,\"EntityKey\":{\"EntitySetName\":\"sysMainTableColumns\",\"EntityContainerName\":\"uqsEntities\",\"EntityKeyValues\":[{\"Key\":\"ID\",\"Value\":2}],\"IsTemporary\":false}}]"}
problem with data , code fails there. 数据问题,代码在那里失败。 and i think i'm not use JavaScriptSerializer().Serialize() method very well.
而且我认为我没有很好地使用JavaScriptSerializer()。Serialize()方法。
Please, tell me, what a big mistake I made in C# code? 请告诉我,我在C#代码中犯了什么大错误?
eval
. eval
。 jQuery does that for you when you specify dataType: "json"
dataType: "json"
时,jQuery会为您完成此操作 JavaScriptSerializer
will die if one happens to contain a circular reference. JavaScriptSerializer
碰巧包含循环引用,它将死掉。 d
! d
! That's inserted by WCF services to work around a security hole in some browsers when the root object is an array. 您是否尝试过使用Firebug或Fiddler进行调试以查看JSON内容是什么样的?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.