2016-11-02 2 views
0

이 작업은 this one과 유사하지만 내 경우에는 다른 방향으로 가고 싶습니다.json으로 json 배열로 json

{ 
    "name": "John", 
    "email": "[email protected]" 
} 
{ 
    "name": "Brad", 
    "email": "[email protected]" 
} 

내가 루프에서 그것을 할 것입니다 떠들썩한 기능을 작성하는 시도 :

#!/bin/bash 

json=`cat $1` 
length=`echo $json | jq '. | length'` 

for ((i=0; i<$length ; i++)) 
do 
echo $json | jq ".[$i]" 
done 

을하지만 그것이

[ 
    { 
     "name": "John", 
     "email": "[email protected]" 
    }, 
    { 
     "name": "Brad", 
     "email": "[email protected]" 
    } 
] 

원하는 출력은 다음과 같습니다 그래서 우리는 입력이 있다고 분명히 극단적으로 느린 ...

어떤 방법으로도 사용할 수 있습니까? jq f 아니면 이거?

답변

1

당신은이를 사용할 수 있습니다

jq '.[]' file 

을 당신이 .[index] 구문을 사용하지만, 전체 인덱스를 생략하면, 그것은 배열의 모든 요소를 ​​반환합니다.

테스트 ". []"

$ jq '.[]' file 
{ 
    "email": "[email protected]", 
    "name": "John" 
} 
{ 
    "email": "[email protected]", 
    "name": "Brad" 
} 
+0

완벽한 매우 유익하다. 감사! – matt525252