2016-08-04 16 views
1

Ich erstelle einen API-Aufruf, die JSON im Körper zurück und ich magJSON Objekt mit einem String vergleichen. Wie kann ich das machen?Wie json Objekt mit einer Zeichenfolge zu vergleichen?

API res.body kehrt folgenden JSON-Objekt:

{ 
    "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" 
     }, 
} 

ich so etwas wie expect(res.body).toMatch('"name": "0"'); vergleichen wollen, aber dies nicht gelingt.

Antwort

3

Verwenden Sie keine Zeichenfolgenvergleiche oder Teilstrings in einem String, die hier geprüft werden. Sie haben mit JSON zu tun, das eine Struktur und eigene Syntaxregeln hat. Vergleichen Sie Objekte stattdessen. Hier ist, wie Sie den Wert überprüfen kann auf die name Taste entspricht:

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

Auch jasmine-matchers Paket einige advanced object matchers hat, überprüfen Sie sie heraus.

+0

Hallo @alecxe 'JSON.parse (res.body)' gibt mir Fehler 'unerwartetes Token o' und ich versuchte' JSON.stringify (res.body) 'das gibt mir eine Fehlermeldung: 'undefiniert, um gleich 0 zu sein – ssharma

Verwandte Themen