Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript/jquery到ruby/sinatra的多维数组_Ruby_Ajax_Json_Multidimensional Array_Sinatra - Fatal编程技术网

从javascript/jquery到ruby/sinatra的多维数组

从javascript/jquery到ruby/sinatra的多维数组,ruby,ajax,json,multidimensional-array,sinatra,Ruby,Ajax,Json,Multidimensional Array,Sinatra,请问如何将二维数组从javascript传递到ruby?我在客户端有这样一个功能: function send_data() { var testdata = { "1": { "name": "client_1", "note": "bigboy" }, "2": { "name": "client_2", "note": "smallboy"

请问如何将二维数组从javascript传递到ruby?我在客户端有这样一个功能:

function send_data() {
    var testdata = {
        "1": {
            "name": "client_1",
            "note": "bigboy"
        },
        "2": {
            "name": "client_2",
            "note": "smallboy"
        }
    }

    console.log(testdata);
    $.ajax({
      type: 'POST',
      url: 'test',
      dataType: 'json',
      data: testdata
    });
  }
在服务器端:

post '/test' do p params end
但我不能把它弄对。在服务器端我能得到的最好的东西是

{"1"=>"[object Object]", "2"=>"[object Object]"}
我试图在客户端添加JSON.stringify,在服务器端添加JSON.parse,但第一个结果是

{"{\"1\":{\"name\":\"client_1\",\"note\":\"bigboy\"},\"2\":{\"name\":\"client_2\",\"note\":\"smallboy\"}}"=>nil}
虽然后者抛出了一个TypeError,但无法将哈希转换为字符串


有人能帮忙吗,或者发一小段正确的代码?谢谢

您可能希望在javascript端手动构建JSON:

[[{'object':'name1'},{'object':'name2'}],[...],[...]]
这将构建一个包含对象的数组

可能是这样的:

testdata = [[{
        "1": {
            "name": "client_1",
            "note": "bigboy"
        }],
        [{"2": {
            "name": "client_2",
            "note": "smallboy"
        }]
    }]

我可能有点不对劲,但这应该接近它的样子。

我不确定这是否有用,但我有两个想法:序列化字段和/或迭代数组

通过设置序列化必须存储子数组的字段,我成功地将json数组放入activerecord对象中:

class MyModel < ActiveRecord::Base
  serialize :tags
end
来回转换似乎有点麻烦,但我发现这是处理数组最明显的方法

f = File.read("myarrayof.json")
jarray = JSON.load(f)
jarray.each { |j| MyModel.create.from_json(j.to_json).save }