我正在进行 API 调用,它将在正文中返回 JSON,我想将 JSON 对象与 String 进行比较。我该怎么做?
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"');
的内容,但这失败了。
最佳答案
不要在此处的字符串检查中使用字符串比较或子字符串。您正在处理具有结构和自己的语法规则的 JSON。而是比较对象。以下是检查与 name
键对应的值的方法:
var obj = JSON.parse(res.body);
expect(obj.name).toEqual("0");
另外,jasmine-matchers
包有一些 advanced object matchers , 去看一下。
关于javascript - 如何将 json 对象与字符串进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38773371/