我使用以下代码将对象发送/接收到我的mvc控制器: $.ajax({url: _createOrUpdateTimeRecord,data: JSON.stringify(data),type: "POST",//dataType: "json",contentType: "application/json; charset=utf-8",beforeSend: function () { $
$.ajax({ url: _createOrUpdateTimeRecord, data: JSON.stringify(data), type: "POST", //dataType: "json", contentType: "application/json; charset=utf-8", beforeSend: function () { $("#loading-overlay").show(); }, success: function (data2) { try { // tried to parse it manually to see if anything changes. data2 = JSON.parse(data2); } catch (err) { } }, error: function (xhr, ajaxOptions, thrownError) { alert(thrownError + 'xhr error -- ' + xhr.status); }
});
在我的mvc控制器上,我将我的JSON对象作为字符串,因此我不需要.NET JavascriptSerializer和JsonResult.
我的JSON字符串如下所示:
data2 = "{title:'1111111',start:'2014-03-23T16:00:00.000',end:'2014-03-23T18:00:00.000',id:107,hdtid:1,color:'#c732bd',allDay:false,description:''}"
我总是得到:
“无效字符”
我已经尝试返回一个字符串并在客户端手动解析JSON.因此我使用ContentResult作为返回类型但没有成功
public class JsonStringResult : ContentResult { public JsonStringResult(string json) { Content = json; ContentType = "application/json"; } }
这里有什么问题? JSON看起来很好……
干杯,
斯特凡
data2 = "{\"title\":\"1111111\",\"start\":\"2014-03-23T16:00:00.000\",\"end\":\"2014-03-23T18:00:00.000\",\"id\":107,\"hdtid\":1,\"color\":\"#c732bd\",\"allDay\":false,\"description\":\"\"}"
在这里阅读JSON标准http://www.voidcn.com/tag/http://json.org
JSON比普通的javascript更严格,密钥必须用双引号包装,字符串也必须用双引号括起来,单引号无效.
Douglas Crockford设计了严格的JSON格式. http://www.yuiblog.com/blog/2009/08/11/video-crockford-json/
他的主页也有许多有价值的链接. http://javascript.crockford.com