2017-10-26 1 views
0

Ich bin neu in JSON und konnte kein Beispiel dafür finden, was ich erreichen möchte. Ich durchlaufe meine AntwortBody versucht zu bestätigen, dass jedes zurückgegebene Gerätemodell einen Teiltext von "Tra" enthält. Wie parse ich einen Wert für Teilstrings?Antwort bestätigenBody enthält Teilzeichenfolge im Postboten

{ 
    "categories:[], 
    "equipment":[ 
     { 
      "model":"580 Trac Vac" 
     }, 
     { 
      "model":"4X2 Trail Gaitor" 
     }, 
     { 
      "model":"Trac Mass-Ter 40'" 
     }] 
} 


//Confirm Model Partial 
var jsonData = JSON.parse(responseBody); 
var resultCount = jsonData.equipment.length; 
for (i=0;i<resultCount;i++){ 
    var modelString = jsonData.equipment[i].model; 
    tests["Resultset " +i+ " contains \"Tra\""] = modelString.has("Tra"); 
} 

Kann ich etwas Ähnliches tun oder sollte ich eine Kombination aus JQ und Regex verwenden?

Antwort

0

Sie können es mit modelString.indexOf("Tra")

//Confirm Model Partial 
var jsonData = JSON.parse(responseBody); 
var resultCount = jsonData.equipment.length; 
for (i=0;i<resultCount;i++){ 
    var modelString = jsonData.equipment[i].model; 
    if(modelString.indexOf("Tra") > 0) 
    { 
     tests["Resultset " +i+ " contains \"Tra\""] = modelString.has("Tra"); 
    } 
} 

Oder Sie können es mit einem regulären Ausdruck tun, die nur Tra

+0

Perfekt, danke! Ich hatte indexOf versucht, aber es nicht richtig benutzt. Ein weiterer Fall von RTFM meinerseits. – LoflinA

0

Hier wäre die Lösung mit Regex für mehrere Varianten von „Tra“

var jsonData = JSON.parse(responseBody); 
var resultCount = jsonData.equipment.length; 
for (i=0;i<resultCount;i++){ 
    var modelString = jsonData.equipment[i].model; 
    var substring = /(?:(?:(?:TRA))|(?:(?:Tra))|(?:(?:tra)(?:.*)))/; 
    tests["Resultset " +i+ " contains some form of \"Tra\""] = 
     modelString.has(substring); 
} 
Verwandte Themen