2015-10-14 120 views
1

我正在使用ActiveResource与使用ADS WebPlatform的ADS Advantage服务器建立与rails 4.2的REST连接。它返回带有“__metadata”的json。我怎样才能删除“__metadata”?从json结果中删除元数据

{ “__metadata”:{ “URI”: “HTTP:// ...”, “key_fields”: “ID”, “rows_affected”:0, “last_autoinc”:0 }, 在我的课程中,我添加了self.include_format_in_path = false,从uri的末尾删除.json。

谢谢。

回答

0

您可以通过以下步骤实现:

解析JSON:

parsed_json = JSON.parse('{ "__metadata": { "uri": "http://.....", "key_fields": "ID", "rows_affected": 0, "last_autoinc": 0 }}') 

那么你会得到一个哈希类型,你只需要得到的__metadata内部:

result = parsed_json['__metadata'] 

然后您可以将其退回或打印:

puts result.to_json 
#=> {"uri"=>"http://.....", "key_fields"=>"ID", "rows_affected"=>0, "last_autoinc"=>0} 
+0

谢谢你的回答。你的回答是对的,但我的问题不对。我无法返回Json,导致错误。我不得不创建一个模块并覆盖ActiveResource :: Formats :: JsonFormat中的decode方法,以便rails从ADS服务器获得散列数组。 – Dino