发布字符串化数组时JSON格式错误(Javascript和Ruby)
我这里有一个非常具体的例子。我基本上是在尝试将字符串数组发布到我的一个ruby服务器上,并将其处理回对象。问题是当我通过Json发送时,结果是这样的 它非常奇怪的语法又回到了服务器上 所以我的问题是我的错误在哪里,我该如何纠正它 1:是我的ruby/rails服务器没有正确解析json吗?(我对此表示怀疑,因为json看起来已经损坏了) 2:这是我构建阵列的方式吗 3:还是(很可能)我发布阵列的方式发布字符串化数组时JSON格式错误(Javascript和Ruby),javascript,html,ruby-on-rails,ruby,json,Javascript,Html,Ruby On Rails,Ruby,Json,我这里有一个非常具体的例子。我基本上是在尝试将字符串数组发布到我的一个ruby服务器上,并将其处理回对象。问题是当我通过Json发送时,结果是这样的 它非常奇怪的语法又回到了服务器上 所以我的问题是我的错误在哪里,我该如何纠正它 1:是我的ruby/rails服务器没有正确解析json吗?(我对此表示怀疑,因为json看起来已经损坏了) 2:这是我构建阵列的方式吗 3:还是(很可能)我发布阵列的方式 所以我只想说得更详细一点。 在javascript的客户端,我有你每天使用的字符串数组。 当我
所以我只想说得更详细一点。 在javascript的客户端,我有你每天使用的字符串数组。 当我运行此命令时: JAVASCRIPT数组:
var $arrayToSend = JSON.stringify(headersTitleArr);
console.log($arrayToSend);
$.ajax({
type: 'POST',
url: webAppURL+websiteID+".json",
data: {elementTypes:$arrayToSend},
success: function(){
console.log("YIPPEE I HAS A SUCCESS");},
dataType: 'json'
});
puts YAML::dump(params[:elementTypes])
@x = (params[:elementTypes])
@elementTypes = JSON.parse(@x)
它产生:
[" Page Title "," Description "," Keywords "," Internal Links ","
External Links "," Content files "," Notes "]
在我的发布方法之后,如下所列:
JAVASCRIPT帖子:
var $arrayToSend = JSON.stringify(headersTitleArr);
console.log($arrayToSend);
$.ajax({
type: 'POST',
url: webAppURL+websiteID+".json",
data: {elementTypes:$arrayToSend},
success: function(){
console.log("YIPPEE I HAS A SUCCESS");},
dataType: 'json'
});
puts YAML::dump(params[:elementTypes])
@x = (params[:elementTypes])
@elementTypes = JSON.parse(@x)
在ruby方面,这是转储参数后出现的结果:
Ruby代码
RUBY:
var $arrayToSend = JSON.stringify(headersTitleArr);
console.log($arrayToSend);
$.ajax({
type: 'POST',
url: webAppURL+websiteID+".json",
data: {elementTypes:$arrayToSend},
success: function(){
console.log("YIPPEE I HAS A SUCCESS");},
dataType: 'json'
});
puts YAML::dump(params[:elementTypes])
@x = (params[:elementTypes])
@elementTypes = JSON.parse(@x)
以及服务器上的打印结果:
--- "[\" Page Title \",\" Description \",\" Keywords \",\" Internal
Links \",\" External Links \",\" Content files \",\" Notes \"]"
你是混血儿。不要把任何东西串起来,或者把所有东西串起来。在你的情况下,我将替换:
$.ajax({
type: 'POST',
url: webAppURL+websiteID+".json",
data: {elementTypes: JSON.stringify($arrayToSend)},
success: function(){
console.log("YIPPEE I HAS A SUCCESS");},
dataType: 'json'
});
与
jQuery将为您处理字符串化。如果要使用stringify:
$.ajax({
type: 'POST',
url: webAppURL+websiteID+".json",
data: JSON.stringify({elementTypes: headersTitleArr}),
success: function(){
console.log("YIPPEE I HAS A SUCCESS");},
dataType: 'json'
});
您必须发送javascript对象或表示JSON的字符串。但是混合这两种类型会导致数据格式错误。您正在混合类型。不要把任何东西串起来,或者把所有东西串起来。在你的情况下,我将替换:
$.ajax({
type: 'POST',
url: webAppURL+websiteID+".json",
data: {elementTypes: JSON.stringify($arrayToSend)},
success: function(){
console.log("YIPPEE I HAS A SUCCESS");},
dataType: 'json'
});
与
jQuery将为您处理字符串化。如果要使用stringify:
$.ajax({
type: 'POST',
url: webAppURL+websiteID+".json",
data: JSON.stringify({elementTypes: headersTitleArr}),
success: function(){
console.log("YIPPEE I HAS A SUCCESS");},
dataType: 'json'
});
您必须发送javascript对象或表示JSON的字符串。但将两者混合会导致数据格式错误。是的,可能是您发布数组的方式。但在我们判断之前,让我们先看看ruby代码,好吗P@corroded只是一个疯狂的想法。似乎额外的\是onyl在服务器端传入的。这可能是因为我正在创建Json字符串作为数据:并将类型:声明为Json?顺便说一句,我已经按照你的要求重新写了这个问题。是的,也许你是如何发布你的数组的。但在我们判断之前,让我们先看看ruby代码,好吗P@corroded只是一个疯狂的想法。似乎额外的\是onyl在服务器端传入的。这可能是因为我正在创建Json字符串作为数据:并将类型:声明为Json?顺便说一句,我已经按照你的要求重新写了这个问题。我已经重新写了这个问题。我知道我给stringify打了两次电话,但我已经摆脱了this@Overtone一个最初的要求是它作为json字符串传递,所以它在服务器端作为散列返回,但数组也可以。非常感谢,朋友。我已经改写了这个问题。我知道我给stringify打了两次电话,但我已经摆脱了this@Overtone一个最初的要求是它作为json字符串传递,所以它在服务器端作为散列返回,但数组也可以。非常感谢你的朋友。