Ich möchte Objekte aus einer JSON-Zeichenfolge auswählen, indem Sie einen JSONPath-Ausdruck mit einem anderen im Filter eingebetteten Ausdruck filtern. Mit anderen Worten, ich möchte nach einem Wert filtern, der an anderer Stelle in den JSON-Daten vorhanden ist.Wie kann ich einen JSONPath-Ausdruck als Filter in einem anderen JSONPath-Ausdruck verwenden?
Zum Beispiel:
Im folgenden JSON-Daten gibt es einen Wert in $.Item.State.stepId
(derzeit "QG2.0"). Ich brauche einen JSONPath Ausdruck haben, die Werte basierend auf diesem Wert, wie folgt wählt:
$..Step[?(@.stepId==$Item.State.stepId)].actionDate
Aber das wird keine Ergebnisse nicht zurück. Wenn ich die Zeichenkette ("QG2.0") direkt wie folgt verwende:
wird es die erforderlichen Daten zurückgeben.
Was ist falsch oder ist es nicht möglich? Meine JSON ist unten:
{
"Item": {
"Common": {
"folio": "PSH-000016020",
"setName": "123-XZ200-1",
"wfId": "Kat1_002",
"wfIssue": "002",
"wfIdIssue": "Kat1_002.002"
},
"State": {
"status": "IN WORK",
"stepId": "QG2.0",
"stepDescription": "Validation"
},
"Participants": {
"Participant": [
{
"role": "PR",
"roleDescription": "Product Responsible",
"loginName": "marc102",
"email": "[email protected]"
}, {
"role": "CR",
"roleDescription": "Chapter Responsible",
"loginName": "uli26819",
"email": "[email protected]"
}
]
},
"Steps": {
"Step": [
{
"stepId": "QG1.0",
"stepTitle": "Preparation",
"actionDate": "2016-06-28T10:28:09",
"actionDueDate": "",
"actionBy_Name": "Marc",
"actionBy_Account": "marc102",
"action": "complete",
"Comment": ""
}, {
"stepId": "QG2.0",
"stepTitle": "Check Requirements",
"actionDate": "2016-08-08T14:17:04",
"actionDueDate": "",
"actionBy_Name": "Uli",
"actionBy_Account": "uli26819",
"action": "complete",
"Comment": ""
}
]
}
}
}
Hallo Brian, danke für die Antwort. Ich dachte darüber nach, hoffte aber, dass es eine direkte Lösung geben würde. –
Nun, Json.Net ist [Open Source] (https://github.com/JamesNK/Newtonsoft.Json) immerhin; Sie können das Feature immer selbst implementieren, wenn Sie sich ehrgeizig fühlen. –