在POST上将javascript对象读取为JSON
Reading a javascript object as JSON on POST
我在其他SO帖子中读到"javascript是JSON"。我很难将这个理论转化为我的应用程序。我用jQuery 执行POST
$.ajax({
type: 'POST',
url: 'Pricing/Create',
data: items,
success: function () { alert('successfully called pricing'); },
dataType: 'json'
});
帖子成功地命中了我的PricingController
的Create
方法中的断点。在查看我的Request.QueryString
时,它是空的。
items
是SomeItem
与length = 30
的阵列。定义为
function SomeItem(description, finalPrice, percentDiscount) {
this.Description = description;
this.FinalPrice = finalPrice;
this.PercentDiscount = percentDiscount;
}
我不执行JSON转换,因为"javascript就是JSON"。如何获取定价控制器中的数据?
差不多到了。当
JSON.stringify(items)
运行时,我在alert((中看到了一组不错的垃圾(在Firebug中也很漂亮(:[{"Description":"some item","Data2":"$1.00","data3":"10"},//...
但是,当它到达服务器时。。。在C#Request.Form
中,它看起来像:
%5b%7b%22Description%22%3a%22some+item%22%2c%22data2%22
wtflip是。。。
JSON是"JavaScript对象表示法",而不是JavaScript。您使用JSON来表示JavaScript对象,尤其是当您想将其发送回服务器时。
在将JavaScript对象传递给ajax调用之前,您确实需要将其转换为JSON——这应该可以做到:
var json = $.toJSON(items);
读一读这篇文章,可能会有所帮助:http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx
您尝试过JSON.stringify()
吗?
您可以将数据线更改为:
data: JSON.stringify(items),
如果目标浏览器本机不支持JSON.stringify()
,您可以在谷歌上搜索一个库来填充该功能。
如果您使用POST方法,那么它不会出现在QueryString变量中。如果你观察一个类似于fiddler的工具发生了什么,你的数据(项(是否会在请求的主体中传递回来?如果是这样,那么你应该能够访问它。否则,你的AJAX请求就有问题了。
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 正在读取JSON,数据未显示
- 使用jquery读取Json数据
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- 使用Angular读取JSON
- 修改d3.js圆环图以读取json数组
- 读取 json 文件 Javascriot 后返回一个数组
- 使用Javascript和PHP读取JSon字符串
- 无法通过rest api读取json变量
- 从d3.js中的文件读取json数据不起作用
- Uncaught SyntaxError:尝试读取json数据时出现意外数字
- 以javascript中的字符串形式从服务器读取json文件
- 使用angularjs中的JSONObject读取json
- 单击按钮时使用JS读取JSON文件
- 如果没有JavaScript中的jQuery,我如何读取.json文件
- javascript在读取JSON文件后无法迭代数组
- 使用 Javascript 读取 JSON 对象(错误)
- JQuery 如何读取 JSON 缓存
- 从 PHP 读取 json 响应并推送到 javascript 多维数组中
- 当我不知道密钥的名称时,如何读取 JSON 对象