我正在进行API调用,它会在正文中返回 JSON ,我想将 JSON 对象与字符串进行比较。我怎么能这样做?
API res.body
返回以下JSON对象:
{
"name": "tenant_tree",
"documents": [
{
"tags": [],
"scope": "all",
"tenant_id": "0",
"id": "9dd2c5a5-2de2-4ac8-b195-04290f83b6fb",
"version": 1,
"description": "",
"name": "0",
"grouping": "",
"perm_read": "all",
"perm_write": "all",
"version_author": "dg",
"version_date": 1470324147050,
"is_current": true,
"dependencies_guid": [""],
"dependencies_name": [""],
"display_name": "system"
},
}
我想比较像expect(res.body).toMatch('"name": "0"');
这样的东西,但这失败了。
答案 0 :(得分:4)
不要在字符串中使用字符串比较或子字符串检查。您正在处理具有结构和自己的语法规则的JSON。比较对象。以下是检查name
键对应值的方法:
var obj = JSON.parse(res.body);
expect(obj.name).toEqual("0");
此外,jasmine-matchers
包有一些advanced object matchers,请检查它们。
答案 1 :(得分:1)
我能够通过以下方式比较API响应体中的json值:
expect(res.body.name).toEqual("0")
无需解析响应。