在紅寶石:如何從javascript,my_ruby_obj.price作爲my_ruby_obj.to_json發送到瀏覽器?
class Obj
attr_accessor :price
end
my_ruby_obj = Obj.new
提出my_ruby_obj.to_json
"\"#<Obj:0x1c9b018>\""
服務器發送my_ruby_obj.to_json到瀏覽器(屈,與CONTENT_TYPE:JSON)響應於一個jquery AJAX請求(與$ .get),它正確地定義了一個json的返回類型,並啓動了一個回調函數(data),它可以:
console.log(data);
返回:
#<Obj:0x1c9b018>
現在怎樣訪問「data.price」屬性在JavaScript/jQuery的我通常會做一個Ruby對象來訪問它的屬性呢? (「my_ruby_obj.price」)
我試着用console.log(data.price);
> Undefined
我覺得我在這裏失去了一大塊..我想它做的JSON使用對象是如何工作的..
任何幫助嗎? 如果可能,我正在尋找一個正確的方式來做到這一點與jQuery。
感謝
編輯:
newdata = $.parseJSON(data);
但調試控制檯停止在其上顯示: 試圖瞭解是怎麼回事,我在回調試過這種
> uncaught exception: Invalid JSON: #<Obj:0x1c9b018>
我確實在ruby對象上調用了.to_json,爲什麼這麼說呢? ...
[new_edit:]
好像紅寶石JSON序列化的對象從自定義類是行不通的,因爲我認爲:
從這裏報價:https://stackoverflow.com/a/4464721/988591
來自你自己班級的對象會更難一些。對於 以下類,to_json將產生類似
"\"#<A:0xb76e5728>\""
。這可能是不可取的。要有效地將您的對象作爲JSON序列化,您應該創建自己的to_json 方法。
和示例如下... 但..哇...是不是有一種更簡單的方法?
downvoters,護理面對你的意見在這裏你爲什麼downvoting? –