Ruby中as_json和to_json方法的区别

78

两种方法 as_jsonto_json 有什么区别? 它们是相同的吗?如果不是,它们之间有什么区别?


1
请查看此链接 - Ilija Eftimov
2个回答

122

to_json 返回字符串。 as_json 返回具有字符串键的哈希。

> { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json
"{\"name\":\"Konata Izumi\",\"age\":16,\"1\":2}"

> { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.as_json
{"name"=>"Konata Izumi", "age"=>16, "1"=>2}

1
如果想知道在控制器中呈现JSON时应该使用哪个方法,“在控制器中,不要直接调用to_json方法,让render方法为您完成。如果需要调整JSON输出,请在您的模型中重写as_json方法或直接调用as_json方法。”- 来自这里 - stevec

67

as_json 方法返回您的模型对象的哈希表示,而 to_json 方法返回一个 JSON 对象。

注意:在调用您的模型/序列化器上的 to_json 方法时,首先会调用 as_json 方法。

您可以在此处阅读更多信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接