1
我有一個文件text.json,我有一個JSON HTTP響應。檢查它們是否相同有什麼好處?比較Json響應Json文本文件
這是我的,但我認爲有更好的解決方案。
JSON.parse(response["data"]).eql?(File.read(text.json))
我有一個文件text.json,我有一個JSON HTTP響應。檢查它們是否相同有什麼好處?比較Json響應Json文本文件
這是我的,但我認爲有更好的解決方案。
JSON.parse(response["data"]).eql?(File.read(text.json))
你需要分析你的測試的兩端:
JSON.parse(response["data"]).eql?(JSON.parse(File.read(text.json)))
編輯
如果你想測試一個陣列JSONs的,你是不知道,在文件中的順序將是相同的[{a:1, b:2}, {a:2, b:1}]
應該等於[{a:2, b:1}, {a:1, b:2}]
,你會需要首先進行排序(見here更多的技術):
JSON.parse(response["data"]).sort.eql?(JSON.parse(File.read(text.json)).sort)
編輯2
由於Hash
ES不排序好了,上面將無法工作。您可以使用其他技術之一:
from_response = JSON.parse(response["data"])
from_file = JSON.parse(File.read(text.json))
(from_response & from_file) == from_response
(from_response - from_file).empty?
對於JSON響應數組呢? '[{},{}]。eqls?[{},{}]'? –
我不知道我理解你的問題 - 響應是一個JSON數組,並且該文件有一個JSON數組?如果JSON的順序很重要,那麼是的,否則,你需要調整解決方案... –
是的,都是數組,順序無關緊要。 –