我有一个这样的 Javascript 对象:
var jsonDataActual = {
"source": [{
"name": "testCaption0",
"desc": "testDescrip0",
"values": [{
"from": "/Date(1338811241074)/",
"to": "/Date(1346760041074)/",
"label": "testLabel0",
"customClass": "GanttRed"
}]
}],
"navigate": "scroll",
"scale": "weeks",
"maxScale": "months",
"minScale": "days",
"itemsPerPage": 11,
"onItemClick": function (data) { },
"onAddClick": function (dt, rowId) { }
};
这对我来说可以。现在,由于我的要求和需要,我将整个对象(包括大括号 ie{ } 和分号 ;)作为服务器端(C#)上的字符串,并使用服务器端方法将其返回给 ajax 调用(web 方法):
在服务器端方法中,我执行以下操作:
return new JavaScriptSerializer().Serialize(jsonData);
但是现在这整个返回的数据(内部Success: function(msg){ var s=msg.d}
)被视为字符串,因此它不起作用。
我试过这些:
1. var obj = eval('{' + msg.d +'}'); (removing beginning and ending braces in msg.d)
typeof(obj) is string. failed
2. eval('var obj ='+msg.d); (including beginning and ending braces in msg.d)
typeof(obj) is string. failed
3. var obj= jQuery.parseJson(msg.d);
typeof(obj) is string. failed
4. var obj = new Object();
//var obj = {};
obj=jQuery.parseJson(msg.d).
typeof(obj) is string. failed.
请帮忙。如何将服务器端返回的 json 转换为对象?
为什么它不适合我???是因为我的 json 对象的结构吗?
为什么jsonDataActual
对我有用,但在作为字符串发送时不起作用???
请帮忙.....