2015-01-06 2 views
3

UNIX에서 JSON 객체를 반복하려고합니다. 다른 값을 가져 와서 문자열에 추가하고 syslog로 전달하는 것이 좋습니다. 아래는 코드입니다.UNIX 셸에서 JQ를 사용하여 JSON 응답 객체를 반복 할 수 없습니다.

//picking up the length of Object 
count=$(jq '.content | length' red) 
#echo $count 

    enter code here 

for((i=0;i<$count;i++)) 
do 
     echo "MY VALUE OF I" 
     echo $i 
     //THE BELOW LINE GIVES ERROR UPON USAGE of $i 
     id="$(cat red | jq '.content[$i].id')" 
     source=$(cat red | jq '.content[$i].entitySummary.source') 
     . 
     . 

     #syslogString="ID=$id SOURCE=$source SUMMARY=$summaryText TITLE=$title DESCRIPTION=$description SEVERITY=$severity MITIGATION=$mitigation IMPACT=$impactDescrip$ 

     echo $id 
     echo "value of ID ($id)" 

콘텐츠 [$ i]와 (과) 컴파일 오류가 발생했으며 동일한 해결책을 얻을 수 없습니다.

응답 클래스는 다음과 같습니다 : 내용에 따라

Page { 
    content (array[ ClientIncident ]) 
     The list of results that make up the page. The number of elements should be less than or equal to the currentPage size. 
    currentPage (Pagination) 
     Size and offset information about the current page. 
    total (integer) 
     The total number of results found. If there are a large number of results, this may be an estimate. Accuracy should improve as the page approaches the end of the resultset. 
} 

JSON 응답은 아래와 같습니다

{ 
    "content": [ 
    { 
     "id": 951653, 
     "version": 12, 
     "score": 100, 
     "entitySummary": { 
     "source": "somewebsite", 
     "summaryText": "someTEXT here", 
     "domain": "www.domian.com", 
     "sourceDate": "2014-12-19T17:00:00.000Z", 
     "type": "WEB_PAGE" 
     }, 
     "type": "SomeTYPE", 
     "title": "some Title", 
     "description": "some description ", 
     "occurred": "2014-12-19T17:00:00.000Z", 
     "verified": "2014-12-19T17:17:22.326Z", 
     "tags": [ 
     { 
      "id": 424, 
      "name": "Data Breach or Compromise", 
      "type": "IMPACT_EFFECTS" 
     }, 
     { 
      "id": 1064, 
      "name": "United States", 
      "type": "TARGET_GEOGRAPHY" 
     }, 
     ], 
     "severity": "MEDIUM", 
     "clientId": "NET", 
     "alerted": "2014-12-19T17:39:55.500Z", 
     "mitigation": "MititgationINFO", 
     "impactDescription": "IMpact description": 0 
    }, 
    { 
     "id": 951174, 
     "version": 8, 
     "score": 100, 
     "entitySummary": { 
+0

json 콘텐츠는 어떻게 생겼습니까? 그 정보없이 당신을 도울 수있는 방법은 없습니다. –

+0

응답 Jeff에게 감사드립니다. 지금 JSON 응답을 추가했습니다. –

답변

4

좋아 나는 이것에 대한 대답을 얻었다.

다음 구문을 사용하여 for 루프에서 작업 할 수 있습니다.

id=$(cat red | jq '.content['${i}'].id')