我正在实现一个现成的 api 项目,我必须在其中比较两个 JSON 对象。
SayObj1 = {"A":"Test1","B:"Test2"}
是一个输入。
我在我拥有的脚本文件中有一个正则表达式
Obj = '''{"A":".*","B":".*"}'''
,我尝试这样assert obj1 == obj
做没有用。
有人能告诉我 ReadyAPI 中的脚本文件是否不支持这种格式的正则表达式吗?
在您的示例中,您可以通过解析 usingJsonSlurper
并在比较之前获取键来进行比较,因为您不必担心这些值。
请参阅示例脚本:
def obj1 = """{
"A" : "Test1",
"B" : "Test2"
}"""
def obj2 = """{
"A" : "Test1a",
"B" : "Test2b"
}"""
def getJsonKeys = { jsonString ->
def json = new groovy.json.JsonSlurper().parseText(jsonString)
json.keySet()
}
assert getJsonKeys(obj1) == getJsonKeys(obj2)
请注意, 中的键有不同的值obj2
。但是,只是比较了键。
另请注意,如果您的 json 有更多深度,您可能必须根据数据更改解决方案。假设您提供了正确的数据。
您可以在线快速试用demo