2016-06-28 13 views
-4
{ 
"A1":{ 
     "name":"Ad hoc", 
     "projectId":0 
     }, 
"X2":{ 
     "name":"BBB", 
     "projectId":101 
     }, 
"AB":{ 
     "name":"CCC", 
     "projectId":102 
     }, 
"recordsCount":3 
} 

Для этого JSON, как извлечь значения? Мне нужен выход, как,Как извлечь значения JSON, у которых нет имен атрибутов?

A1, Ad hoc 
X2, BBB 
AB, CCC 

Оценочные оценки экспертов.

+0

Добавить код, который вы пробовали. –

+0

Я пробовал $ [*] .. имя, но я не знаю, как получить значения A1, X2, AB. –

+0

Sachin Gupta, если вы знаете ответ, пожалуйста, помогите. Мне нужно использовать Json-путь в Talend для извлечения родительского значения A1, X2, AB –

ответ

1

Анализ

XPath не может читать неназванные атрибуты. Это всегда приведет к исключению. Если вы хотите получить значения, вам нужно использовать JsonPath.

Решение

Даже тогда, имеет смысл добавить окружающие скобки, в противном случае первый уровень будет потребляться, а также:

[ 
    { 
"A1":{ 
     "name":"Ad hoc", 
     "projectId":0 
     }, 
"X2":{ 
     "name":"BBB", 
     "projectId":101 
     }, 
"AB":{ 
     "name":"CCC", 
     "projectId":102 
     }, 
"recordsCount":3 
    } 
] 

Вы можете попробовать правильный запрос на jsonpath.com. Для меня (с дополнительными скобками) работал путь $.*.

Для извлечения значений необходимо использовать компонент tExtractJSONFields в Talend при использовании файла или запроса REST.

Действительным JSON query может быть легко [0] для поля с буквенно-цифровыми идентификаторами.