Я новичок в JSONPath, так что это может быть моя ошибка, но когда я пробую это выражение в онлайн-оценщике (https://jsonpath.com/), оно работает, но не работает в каратэ.
$..entry[?(@.resource.resourceType == 'AllergyIntolerance' && @.resource.category=='food')].resource.code.coding.*.system
Если я использую индекс, я могу получить первый элемент, но я хочу захватить все элементы, которые соответствуют выражению, независимо от их индекса, на случай, если в массиве больше элементов, а не мои данные c пример.
Рабочий путь JSONPath:
$..entry[?(@.resource.resourceType == 'AllergyIntolerance' && @.resource.category[0]=='food')].resource.code.coding.*.system
Я пытался использовать подстановочные знаки, но это, похоже, не работает:
$..entry[?(@.resource.resourceType == 'AllergyIntolerance' && @.resource.category[*]=='food')].resource.code.coding.*.system
JSON фрагмент с соответствующие разделы
{
"entry": [ {
"resource": {
"resourceType": "AllergyIntolerance",
"id": "allergyFood",
"category": [ "food" ],
"criticality": "high",
"code": {
"coding": [ {
"system": "http://snomed.info/sct",
"code": "91935009",
"display": "Allergy to peanuts"
} ],
"text": "Allergy to peanuts"
},
"reaction": [ {
"manifestation": [ {
"coding": [ {
"system": "http://snomed.info/sct",
"code": "271807003",
"display": "skin rash"
} ],
"text": "skin rash"
} ],
"severity": "mild"
} ]
}
}, {
"resource": {
"resourceType": "AllergyIntolerance",
"id": "allergyMed",
"verificationStatus": "unconfirmed",
"type": "allergy",
"category": [ "medication" ],
"criticality": "high",
"code": {
"coding": [ {
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "7980",
"display": "penicillin"
} ]
}
}
} ]
}