2015-10-14 102 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