Javascript 如何将变量转换为json?
我想将json数据发送到ajax,但如何将变量转换为json或将数组转换为jsonJavascript 如何将变量转换为json?,javascript,jquery,json,Javascript,Jquery,Json,我想将json数据发送到ajax,但如何将变量转换为json或将数组转换为json $(".confirm_order").click(function(event) { event.preventDefault(); var street = $("#street").val(); var location = $("#location").val(); var number = $("#number").val(); var f = ???
$(".confirm_order").click(function(event) {
event.preventDefault();
var street = $("#street").val();
var location = $("#location").val();
var number = $("#number").val();
var f = ???
$.ajax({
type: 'post',
url: "/orders",
dataType: "json",
data: f,
success: function (l) {
alert("Done");
}
});
});
如果要向服务器发送JSON格式的请求,可以为此请求指定适当的内容类型,然后使用
JSON.stringify
方法:
var street = $('#street').val();
var location = $('#location').val();
var number = $('#number').val();
$.ajax({
type: 'post',
url: '/orders',
dataType: 'json',
data: JSON.stringify({ street: street, location: location, number: number }),
contentType: 'application/json; charset=utf-8',
success: function (l) {
alert("Done");
}
});
这将在邮件正文中发送以下内容:
{ street: 'foo', location: 'bar', number: 'baz' }
显然,发送此AJAX的服务器端脚本需要能够处理和解析JSON字符串。使用
JSON.stringify
from
不要忘记在配置对象中指定
contentType:'application/json'
。试试这个。值将分别替换
{street:street,location:location,number:number}
如果您真的想将数据转换为JSON,您必须创建一个对象或数组并使用JSON.stringify
(可在较新的浏览器中使用,并且可以以以下形式加载):
但是您不能只将data
属性设置为f
。您必须将其分配给另一个变量:
data: {data: f}
这将产生如下POST参数:
data={"number":"value of number","location:...}
但是,没有理由在这里创建JSON。我会将这些值作为正常的post参数发送。为此,您只需创建一个如上所述的对象,并将其分配给data
:
data: {street: street, location: location, number: number}
这将创建POST参数:
street=valueofstreet&location=valueoflocation&...
这将更容易,因为您不必在服务器端解析JSON。谢谢,addresss块怎么样?这怎么可能。。。将addresss block和order block类似于f variable?默认情况下,jQuery将其编码为application/x-www-form-urlencoded而不是application/json数据。@user622378:您可以在f variable中添加另一个键来存储值,该值可以是类似于f
var add={}的对象;添加['street']='street';f['地址]]=添加
默认情况下,jQuery将其编码为application/x-www-form-urlencoded not application/json数据。默认情况下,jQuery将其编码为application/x-www-form-urlencoded not application/json数据。只有最近的浏览器才提供json对象。如果你这样做的话,你真的应该包括一个为稍旧的浏览器提供一个库的库。@David Dorward,这是正确的,需要指出的一点很重要。
data={"number":"value of number","location:...}
data: {street: street, location: location, number: number}
street=valueofstreet&location=valueoflocation&...