2016-08-04 195 views
1

我正在做一个API调用,将返回JSON在身体和我想比较JSON对象与字符串。我怎样才能做到这一点?如何将json对象与字符串进行比较?

API以下JSON对象res.body回报:

{ 
    "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"');但这种失败。

回答

3

不要在字符串中使用字符串比较或子字符串检查。您正在处理具有结构和自己的语法规则的JSON。改为比较对象。这里是你如何检查对应name键的值:

var obj = JSON.parse(res.body); 
expect(obj.name).toEqual("0"); 

此外,jasmine-matchers包有一些advanced object matchers,检查出来。

+0

嗨@alecxe'JSON.parse(res.body)'给我出错'意外标记O',我尝试'JSON.stringify(res.body)'这使我的错误: '未定义为等于0' – ssharma

相关问题