0

我正在实现一个现成的 api 项目,我必须在其中比较两个 JSON 对象。
SayObj1 = {"A":"Test1","B:"Test2"}是一个输入。

我在我拥有的脚本文件中有一个正则表达式
Obj = '''{"A":".*","B":".*"}''',我尝试这样assert obj1 == obj做没有用。

有人能告诉我 ReadyAPI 中的脚本文件是否不支持这种格式的正则表达式吗?

4

1 回答 1

1

在您的示例中,您可以通过解析 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

于 2017-10-07T03:50:47.560 回答