0

私は Jira プロジェクトに取り組んでおり、API クエリからデータを返しています。データはjson_encode形式です。

配列内の配列へのアクセスに問題があります。

これが私が取り組んでいるjson_encodeデータです。

{
   "expand":"names,schema",
   "startAt":0,
   "maxResults":50,
   "total":1,
   "issues":[
      {
         "expand":"editmeta,renderedFields,transitions,changelog,operations",
         "id":"190579",
         "self":"http://jira.localhost.com/rest/api/2/issue/190579",
         "key":"JIRA-1234",
         "fields":{
            "summary":"Testing Jira ticket only",
            "progress":{
               "progress":0,
               "total":0
            },
            "issuetype":{
               "self":"http://jira.localhost.com/rest/api/2/issuetype/28",
               "id":"28",
               "description":"Short task independent from any project",
               "iconUrl":"http://jira.localhost.com/images/icons/ico_story.png",
               "name":"Ticket",
               "subtask":false
            },
            "timespent":null,
            "reporter":{
               "self":"http://jira.localhost.com/rest/api/2/user?username=username",
               "name":"username",
               "emailAddress":"username@localhost.com",
               "avatarUrls":{
                  "16x16":"http://jira.localhost.com/secure/useravatar?size=small&avatarId=10302",
                  "48x48":"http://jira.localhost.com/secure/useravatar?avatarId=10302"
               },
               "displayName":"User Name",
               "active":true
            },
            "customfield_10430":null,
            "customfield_10490":null,
            "created":"2012-11-26T00:32:26.000-0800",
            "updated":"2012-11-26T00:48:19.000-0800",
            "description":"test description",
            "priority":{
               "self":"http://jira.localhost.com/rest/api/2/priority/6",
               "iconUrl":"http://jira.localhost.com/images/icons/priority_major.gif",
               "name":"Normal",
               "id":"6"
            },
            "issuelinks":[

            ],
            "customfield_10471":null,
            "customfield_11054":[
               "server1,",
               "server2,",
               "server3,",
               "server4",
               "server5,",
               "server6,",
               "server7,",
               "server8,",
               "server9,",
               "server10,",
               "server11,",
               "server12,",
               "server13,"
            ],
            "subtasks":[

            ],
            "status":{
               "self":"http://jira.localhost.com/rest/api/2/status/1",
               "description":"The issue is open and ready for the assignee to start work on it.",
               "iconUrl":"http://jira.localhost.com/images/icons/status_open.gif",
               "name":"Open",
               "id":"1"
            },
            "customfield_10621":null,
            "workratio":-1,
            "customfield_10530":{
               "self":"http://jira.localhost.com/rest/api/2/customFieldOption/10694",
               "value":"S2",
               "id":"10694"
            },
            "customfield_11052":[
               "user.name:1",
               "username:1"
            ],
            "project":{
               "self":"http://jira.localhost.com/rest/api/2/project/JIRA",
               "id":"10190",
               "key":"JIRA",
               "name":"JIRA Tickets",
               "avatarUrls":{
                  "16x16":"http://jira.localhost.com/secure/projectavatar?size=small&pid=10190&avatarId=10011",
                  "48x48":"http://jira.localhost.com/secure/projectavatar?pid=10190&avatarId=10011"
               }
            },
            "customfield_10480":{
               "self":"http://jira.localhost.com/rest/api/2/customFieldOption/10613",
               "value":"QT - Manual",
               "id":"10613"
            },
            "customfield_10420":null,
            "customfield_10054":null,
            "customfield_10053":null,
            "customfield_10051":null,
            "customfield_10630":null,
            "aggregateprogress":{
               "progress":0,
               "total":0
            },
            "timeoriginalestimate":null,
            "customfield_10584":null,
            "customfield_10585":null,
            "customfield_10582":{
               "self":"http://jira.localhost.com/rest/api/2/customFieldOption/10934",
               "value":"Namesd",
               "id":"10934"
            },
            "customfield_10580":{
               "self":"http://jira.localhost.com/rest/api/2/customFieldOption/10808",
               "value":"Names",
               "id":"10808"
            },
            "customfield_10581":{
               "self":"http://jira.localhost.com/rest/api/2/customFieldOption/10913",
               "value":"Name",
               "id":"10913"
            },
            "votes":{
               "self":"http://jira.localhost.com/rest/api/2/issue/JIRA-1234/votes",
               "votes":0,
               "hasVoted":false
            },
            "fixVersions":[

            ],
            "resolution":null,
            "resolutiondate":null,
            "aggregatetimeoriginalestimate":null,
            "customfield_10125":null,
            "duedate":null,
            "watches":{
               "self":"http://jira.localhost.com/rest/api/2/issue/JIRA-1234/watchers",
               "watchCount":1,
               "isWatching":false
            },
            "customfield_10375":null,
            "customfield_10750":"<p>testing only</p>",
            "customfield_10651":"112965",
            "customfield_10374":null,
            "customfield_10650":"128836",
            "customfield_10652":null,
            "customfield_10370":null,
            "assignee":{
               "self":"http://jira.localhost.com/rest/api/2/user?username=johnsmith",
               "name":"johnsmith",
               "emailAddress":"johnsmith@localhost.com",
               "avatarUrls":{
                  "16x16":"http://jira.localhost.com/secure/useravatar?size=small&avatarId=10302",
                  "48x48":"http://jira.localhost.com/secure/useravatar?avatarId=10302"
               },
               "displayName":"John Smith",
               "active":true
            },
            "customfield_10590":null,
            "customfield_10500":{
               "self":"http://jira.localhost.com/rest/api/2/customFieldOption/10630",
               "value":"1",
               "id":"10630"
            },
            "aggregatetimeestimate":null,
            "customfield_10170":null,
            "timeestimate":null,
            "customfield_10440":null,
            "aggregatetimespent":null
         }
      }
   ]
}

これは、レコードにアクセスして印刷するための私のスニペット PHP コードです。

foreach ($json_output->issues as $issues) {

    echo "{$issues->key}";
    echo "{$issues->fields->summary}";
    echo "{$issues->fields->created}";
    echo "{$issues->fields->reporter->name}";

}

customfield_11054 にアクセスして、サーバーのリストを印刷したい場合

server1, server2, server3, server4, server5, server6, server7, server8, server9, server10,
server11, server12, server13

だから私はこれを追加します

foreach ($json_output->issues as $issues) {

    echo "{$issues->key}";
    echo "{$issues->fields->summary}";
    echo "{$issues->fields->created}";
    echo "{$issues->fields->reporter->name}";
    echo "{$issues->fields->customfield_11054}";    
}

しかし、結果を配列として取得しています。

4

3 に答える 3

4

print_r($issues->fields->customfield_11054);

それは配列であるため、配列であると言われています。値を取得したい場合は、そこに別の foreach をラップする必要があります。

foreach ($json_output->issues as $issues) {

    echo $issues->key;
    echo $issues->fields->summary;
    echo $issues->fields->create;
    echo $issues->fields->reporter->name;
    foreach($issues->fields->customfield_11054 as $customField)
    {
        echo $customField;
    }
}

また、補足として、変数を出力するために「{}」に変数を入れる必要はありません。それらは文字列なので、使用echo $variable;するだけで問題なく機能します (上記のスニペットに入れました)。

于 2012-11-26T10:07:41.003 に答える
0

簡単にするためにこれを使用してください

$data = json_decode($result,true); 

foreach ($data as $values) {

    //then do stuff here
}
于 2012-11-26T10:10:08.530 に答える
0

関数を使用する

foreach ($json_output->issues as $issues) {

    echo "{$issues->key}";
    echo "{$issues->fields->summary}";
    echo "{$issues->fields->created}";
    echo "{$issues->fields->reporter->name}";
    echo implode(',', $issues->fields->customfield_11054);    
}
于 2012-11-26T10:13:56.500 に答える