JSON Path Extraction
У меня есть данные JSON, в которых есть элемент массива с именем "References" . Этот массив "References" дополнительно имеет такие элементы, как TypeName, Id и элемент Called Attributes, который дополнительно имеет такие элементы, как name и type. Возможные значения для TypeName: Сотрудники, Офисы, Оборудование и т. д.
"References": [
{
"TypeName": "Employees",
"Attributes": {
"Type": "9t59c6ghn1l4y81nvu7a",
"Name": "WH-3",
}
},
{
"TypeName": "Hardware",
"Attributes": {
"Name": "rz2j8c85kbl3add5vmb5",
}
},
{
"TypeName": "Organization",
"Attributes": {
"Type": "4qww1im1o6w4xm4ehlkm",
"Name": "Training"
}
},
]
Я хочу извлечь путь для элемента TypeName из массива "Ссылки". Например: я хочу извлечь путь для организации TypeName и далее для атрибутов этого TypeName.
Спасибо!
1 ответ
Вы можете легко извлечь атрибуты организации, однако ваш JSON не является допустимым JSON, поэтому вам нужно сначала исправить это в зависимости от того, насколько простит анализатор, который вы используете. Весь документ должен иметь объект или массив в корне, и после последних свойств некоторых объектов в документе есть дополнительные запятые. Вот фиксированный документ:
{
"References": [
{
"TypeName": "Employees",
"Attributes": {
"Type": "9t59c6ghn1l4y81nvu7a",
"Name": "WH-3"
}
},
{
"TypeName": "Hardware",
"Attributes": {
"Name": "rz2j8c85kbl3add5vmb5"
}
},
{
"TypeName": "Organization",
"Attributes": {
"Type": "4qww1im1o6w4xm4ehlkm",
"Name": "Training"
}
}
]
}
Чтобы получить атрибуты организации, вы можете использовать следующий путь JSON
$..References[?(@.TypeName=='Organization')].Attributes
Я проверил это с помощью онлайн-инструмента запросов JSON здесь: http://www.jsonquerytool.com/sample/jsonpathwhereselect