2

我使用 ko.toJSON 从 knockout.js 获取 json 对象

self.cmaterials = ko.observableArray([]);

……

    ko.computed(function() {
    $.ajax({
         url: "/editcmat1",
         type: "PUT",
         data: ko.toJSON(
            self.cmaterials
         )
     });
});

红宝石代码

puts params

{"id":34,"name":"混凝土","material_id":3}

当我尝试转换它时

puts JSON.parse(js)

TypeError - 无法将 Hash 转换为 String:

我怎样才能使它成为一个可用的 Ruby 哈希。

puts parse.keys
  {"id":34,"name":"Concrete","material_id":3}
4

1 回答 1

0

要对代码执行您尝试执行的操作,您将执行以下操作:

 puts JSON.parse(js).to_s

使用该JSON.parse方法使其成为可用的哈希。您正在尝试输出该哈希puts,这意味着您必须将其转换为字符串。如果您想访问该哈希,只需执行以下操作:

hash = JSON.parse(js)
puts hash["id"] #34
puts hash["name"] #concrete
etc...
于 2013-03-12T21:59:28.757 回答