Javascript 使用json.stringify将JS对象转换为json字符串
我有四个文本框,其中包含我通过在各种js对象上调用json.stringify创建的json字符串Javascript 使用json.stringify将JS对象转换为json字符串,javascript,Javascript,我有四个文本框,其中包含我通过在各种js对象上调用json.stringify创建的json字符串 eg. '["users.name","users.username"]' (This is the value of one textbox) 我想做的是从这四个json字符串中创建一个json字符串,并使用POST将它们发送到后端 所以我创建了一个对象,然后像这样添加它们 tmp = {} tmp["columns"] = $("#sc").val(); /*adding more data
eg. '["users.name","users.username"]' (This is the value of one textbox)
我想做的是从这四个json字符串中创建一个json字符串,并使用POST将它们发送到后端
所以我创建了一个对象,然后像这样添加它们
tmp = {}
tmp["columns"] = $("#sc").val();
/*adding more data....*/
$.ajax("/api/backend", {
data: JSON.stringify(tmp),
/* more ajax code...*/
});
发送的数据采用以下格式
{"columns":"[\"users.name\",\"users.username\"]"}
这不是一个字符串,而是一个json对象
现在,当我做以下事情时
tmp1= JSON.stringify(tmp)
和使用后
$.ajax("/api/backend", {
data: JSON.stringify(tmp1),
/*more code below..*/
发送的数据采用以下格式,并且是字符串
"{\"columns\":\"[\\\"users.name\\\",\\\"users.username\\\"]\"}"
此字符串包含大量的“\”字符,需要在后端考虑这些字符
这是处理我问题的正确方法还是我做错了什么
谢谢这取决于你想要达到的目标 如果要向服务器发送一个JSON,该JSON将输入中的所有JSON组合在一起,那么最好先解析输入中的JSON,然后再将其添加到
tmp
对象中。这样,您就得到了一个包含对象的对象,而不是一个包含JSON字符串的对象
从输入中检索JSON如下:
tmp["columns"] = JSON.parse($("#sc").val());
请注意,您正在tmp
对象中存储对象,而不是JSON字符串。然后,您可以将该对象作为JSON发送到服务器
因此,您的服务器将收到以下信息:
"{\"columns\":\"[\"users.name\",\"users.username\"]\"}"
我相信这看起来好多了。我希望这会有所帮助。我想主要的问题是,为什么文本框中有序列化数据?你实际上想发送什么?我按照你的建议进行了JSON.Parse,删除了tmp1=JSON.stringify(tmp),然后返回到数据:JSON.stringify(tmp),但它发送JSON obj而不是stringnow数据结构是{“columns”:“[“users.name”,”users.username“]”}我添加了tmp1=JSON.stringify(tmp)及其工作..tx