2017-03-13 4 views
0

제목이 더 잘 봤는데 수 있지만 때로는 내 영어 어휘여러 필드가 있지만 첫 번째 키의 값만 추출합니까?

됐건 (유용한 자원을 jqplay.org에도 불구하고 인) :(내 JSON 기술로 부족한 같다, 내가 처음 를 추출하기 위해 노력하고있어 사용자 이름 값이 "accounts" 필드 아래에 있습니다. 문제는 여러 항목 ("someone"및 "someoneelse")이 있고 목록의 첫 번째 키 값 ("JQ_Newb"또는 "GOD") 만 필요합니다. JSON .) 구문 분석

를 JSON의 내용은 다음대로 :

{ 
    "accounts": { 
    "someone": { 
     "username": "JQ_Newb", 
     "info": "stackoverflow" 
    }, 
    "someoneelse": { 
     "username": "GOD", 
     "info": "heaven" 
    } 
    } 
} 

나는 to_entries[]select()와 주변 하구 봤는데 (와 [] 사이의 값없이()),하지만 난지고있어 모든은 다음과 같습니다

{ 
    "key": "extra", 
    "value": "stackoverflow" 
} 
{ 
    "key": "extra", 
    "value": "heaven" 
} 

과 :

"JQ_Newb" 
"GOD" 

01 DR; .accounts[].username

TL을 사용

.accounts[]|to_entries[0]|select(i_dont_know_what_i'm_doing) 

솔루션이 이미 Stackoverflow에있는 경우 찾지 못해 죄송합니다. 나는이 문제를 해결하기 위해 최선을 다했다.

감사합니다,

copyitright 당신의 JQ가 first/1 경우

답변

3

가 : 당신이 좋아하는 수도 그렇지 않으면

first(.accounts[] | .username) 

고려해야 할을 :

[.accounts[] | .username][0] 
+0

어떻게 일이 그렇게 간단 볼 수 , 찾기가 너무 힘들어!? 대단히 감사합니다, 피크! (첫 번째 해결책은 jq-win32 1.5에서 작동합니다) :-) –