2012-01-05 8 views
2

私はact_as_treeを使用して3 &のレールで作業しています。どのようにして2つのノードの違いを見つけることができるように、ネストされたJSONを反復処理できますか?私はこのようなルックスを比較したい2つの入れ子になったjsonオブジェクトのレールを比較する3

JSON:

{  
    "text": "To Do", 
    "children": [{ 
     "text": "Go jogging", 
     "children":[] 
    }, { 
     "text": "Take a nap", 
     "children":[] 
    }] 
} 

{  
    "text": "To Do", 
    "children": [{ 
     "text": "Climb Everest", 
     "children":[] 
    }] 
} 
+0

これを確認してください:http://stackoverflow.com/questions/4465244/compare-2-json-objects?answertab=votes#tab-top –

答えて

1

は差分を示す - 私はあなたが構造にJSONsをデシリアライズし、オブジェクトを比較する必要があると思います。それは私にとって最も簡単な方法です。

2

、見た目にhttps://rubygems.org/gems/json-compare

を取ることは、差分を取得するために何かをすることも可能ですしてください:

require 'yajl' 
require 'json-compare' 

json1 = File.new('spec/fixtures/twitter-search.json', 'r') 
json2 = File.new('spec/fixtures/twitter-search2.json', 'r') 
old, new = Yajl::Parser.parse(json1), Yajl::Parser.parse(json2) 
result = JsonCompare.get_diff(old, new) 
1

OhadRが述べたように、デシリアライズし、オブジェクトを比較するには実行可能な方法のようです。そのために

、この宝石を確認してください。

https://github.com/liufengyun/hashdiff

それも、JSONやYAML構造を比較し、違いを示すのonline demoを持っています。

関連する問題