2017-04-17 4 views
0

Ich versuche, bedingt den Wert eines Elements aus der folgenden Probe json Antwort zu extrahieren:Jmeter - Json Pfad Extraktor - bedingte Auswahl

{ 
    "books": [ 
    { 
     "title": "book 1 title", 
     "author": { 
      "firstName": "author01", 
      "lastName": "abc" 
     } 
    } 
    { 
     "title": "book 2 title", 
     "author": { 
      "firstName": "author02", 
      "lastName": "xyz" 
     } 
    } 
    ] 
} 

Ich möchte den Buchtitel, wo nachName == xyz auszuwählen. Hier ist der Ausdruck, die ich benutze: [? (. @ Author.lastName == 'xyz')] $ .books

aber es gibt []

Dank

Antwort

1

Ihr JSON-Pfad Ausdruck korrekt ist Demo:

JSON Path Conditional Select

jedoch gibt es ein Problem mit Ihrem JSON:

{ 
    "books": [ 
    { 
     "title": "book 1 title", 
     "author": { 
     "firstName": "author01", 
     "lastName": "abc" 
     } 
    }, <-----------------------------you need the comma here 
    { 
     "title": "book 2 title", 
     "author": { 
     "firstName": "author02", 
     "lastName": "xyz" 
     } 
    } 
    ] 
} 

Wenn Ihre Antwort nicht in einen gültigen JSON aufgelöst werden kann, müssen Sie stattdessen Regular Expression Extractor verwenden. Wenn es - überprüfen Sie Ihren Ausdruck JSON-Pfad und auch einen Besuch wert JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios

+0

@Dimitri, mein Schlechter. Ich habe das Komma vergessen. Ich meine auch, mein Ausdruck ist $ .books [? (@. Author.lastName == 'xyz')]. Title (tut mir leid, aber ich kann meine Frage nicht bearbeiten. Ich weiß nicht warum). Hier ist, was mein Denken für meinen Ausdruck: 1. $ .books -> Holen Sie sich ein Array von Buch 2.?() -> filter 3.? (@. Author.lastName == 'xyx') - -> Wähle den Nachnamen des Autorenobjekts und vergleiche es mit xyz. Es funktioniert jedoch nicht. Sieht aus wie?() Kann nur das Objekt der ersten Ebene nehmen. IOW? (@. Title == 'Buch 2 Titel') ist in Ordnung. Wie auch immer, danke – hdang

0

unten Ausdruck Versuchen:

$ .books Titel

[? (@ Author.lastName == 'xyz'.)].
Verwandte Themen