javascript - 如何将 json 对象与字符串进行比较?

标签 javascript json testing jasmine protractor

我正在进行 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/

相关文章:

javascript - karma : Is it possible to load JavaScript files statically before the requirejs framework?

javascript - 使用 webpack 编译时无法刷新生产中的页面

javascript - 如何向 javascript 文本区域添加一个计数器,该计数器像 Twitter 一样计数,但不是向下计数,而是最多增加到 150 个字符

java - Jackson反序列化——聚合几个字段

json - API 请求和响应

javascript - Selenium 测试 : Authenticate with Webauthn

javascript - 来自 Javascript 的双面 a-frame a-panel

javascript - 如何同步获取 Promise 的结果

javascript - 如何在javascript中循环php json编码数组?

ruby-on-rails - Rails Controller 中的功能测试重定向