首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ActiveModel::Serializer中的json解析回对象

如何将ActiveModel::Serializer中的json解析回对象
EN

Stack Overflow用户
提问于 2014-09-03 23:58:19
回答 1查看 671关注 0票数 1

我有一堆序列化程序。现在我想把JSON转换回原来的对象进行测试。我看不到使用ActiveModel::Serializers可以做到这一点。看起来以前有一个from_json方法被弃用了。你应该怎么做呢?

基本上,我想像这样测试往返:

代码语言:javascript
复制
json = WidgetSerializer.new(@widget).to_json
testw = Widget.new
testw.from_json(json) #from_json doesn't exist in ActiveModel::Serializers
@widget.should == testw

但是模型上的"from_json“方法没有从序列化程序中正确地读取json,因为它不是预期的格式

EN

回答 1

Stack Overflow用户

发布于 2015-09-11 20:32:07

我能想到的最好方法是使用Widget.find()或Widget.find_by(),这取决于您传递给序列化器的属性(尤其是当其中一个属性是唯一属性时)。

例如,如果序列化程序包含id (在本例中是最简单的):

代码语言:javascript
复制
   json = WidgetSerializer.new(@widget).to_json
   target_id = JSON.parse(json)[:id]
   test_widget = Widget.find(target_id)
   @widget.should == test_widget
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25648785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档