2013-10-29 100 views
0

我有以下的JSON合併JSON和刪除重複紅寶石軌

假設我在手機那麼這個領域的選擇將產生

{"Style":"convertible","Year":"2010","Color":"green"} 
{"Style":"convertible","Year":"2010","Color":"red"} 

如果我的選擇是自行車則此字段將generatd

{"model":"2012","mileage":"20kmph","Color":"red"} 

我該如何達到上述結果。

編輯-1

我具有其中一些與被自動字段的基礎上產生類別選擇的形式。我已將自動生成的字段轉換爲json並作爲單列存儲在數據庫中。 Image url

我不知道如何解釋你能否理解我在找什麼。看看我的截圖,以便更好地瞭解

回答

0

我假設(出於某種瘋狂的原因)您將使用Ruby來做到這一點。

但首先,你的預期輸出是錯誤的,因爲你不能有重複鍵的哈希:

{"Color": "green", "Color": "red"} 

...是不可能的。 「年份」鍵也一樣。把散列中的鍵看作是漢蘭達。只能有一個(同名)。因此,您的實際預期產出將爲:

{"Style":"convertible", "Year":"2012", "Color":"red", "name":"test"} 

或其他。反正...

第1步:轉換JSON到一個Ruby的Hash

require 'json' 
converted = JSON.parse '[{"Style":"convertible","Year":"2010","Color":"green"}, 
{"Style":"convertible","Year":"2010","Color":"red"}, 
{"name":"test","Year":"2012","Color":"red"}]' 

步驟2:將它們合併

merged = {} 
converted.each { |c| merged.merge! c } 

現在合併後的變量應該像上面的實際預期輸出。

剩下的唯一問題是決定哪些重複鍵覆蓋哪些其他重複鍵。這裏重要的是你合併哈希的順序。最後合併的內容會覆蓋任何現有的重複鍵/值。希望有所幫助。

+0

我需要這個的原因是我試圖創建精緻的搜索,如果2012年和2010年出現在JSON中,那麼它應該突出顯示它。否則,我需要隱藏其他人。我是否正確? – Prabhakaran8737

+0

我是否可以在那裏申請任何聯盟運營 – Prabhakaran8737

+0

然後不要合併或聯合。將它們保存爲單獨的JSON對象,以便它們可以擁有自己的密鑰。合併似乎並不是你想要的。你能重述這個問題嗎? – DiegoSalazar