2016-06-28 5 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, 답을 알고 있다면 도와주세요. Talend에서 Json 경로를 사용하여 부모 값 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의 올바른 쿼리를 시도 할 수 있습니다. 나를 위해 (추가 브래킷 포함) $.* 경로가 작동했습니다.

값을 추출하려면 파일 또는 REST 요청을 사용하는 경우 Talend에 tExtractJSONFields 구성 요소를 사용해야합니다.

유효한 JSON query은 영숫자 식별자가있는 필드에 대해 쉽게 [0] 일 수 있습니다.