Зацикливание данных JSON показывает только первый символ - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь вывести конкретную информацию, поступающую из JIRA, у меня есть цикл JSON и отображаются результаты, но самые отдаленные от гнезда результаты показывают только первый символ.

Я пытался следовать предложениям здесь , но, похоже, это относится к результатам на верхнем уровне, и я не могу заставить его работать с моим кодом.

<?php
$username = '*************';
$password = '*************';

$url = '<JIRA-DOMAIN>/rest/api/2/search?jql=project=ICI&fields=key,summary,description&maxResults=10';

$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

$issue_list = (curl_exec($curl));
$json = json_decode($issue_list, TRUE);
?>

<div class="toto">
    <?php
    foreach($json['issues'] as $obj){   ?>

        <h2><?php echo $obj['id']; ?></h2>

          <?php foreach($obj['fields'] as $parc){ ?>

             <a href="<?php echo $parc['summary']; ?>">
                 <span><?php echo $parc['description']; ?></span>
             </a>

       <?php }
     } ?>
</div>

Когда я повторяю $ Issue_List, я получаю следующее:

Укороченный вывод

{
    "expand":"schema,names",
    "startAt":0,
    "maxResults":10,
    "total":9,
    "issues":[
        {

"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id":"10058",
        "self":"<domain>/rest/api/2/issue/10058",
        "key":"ICI-9",
        "fields":{
            "summary":"ToS and PP button removal",
            "description":"The Terms of Service and Privacy Policy buttons go to a page on the website so they can't use the app after. They also go to a page of nothing because they aren't written so they need to be deleted"
        }
    },
    {
        "expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id":"10048",
        "self":"<domain>/rest/api/2/issue/10048",
        "key":"ICI-1",
        "fields":{
            "summary":"Create Launch Image",
            "description":"Create launch image for app. Resolution should be: 2048px × 1536px\r\n\r\n[~james.whitaker] I got this info from [here|https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/launch-screen/]"
        }
    }
]
}

Но на выходе цикла отображается только первый символ для описания и сводки, как показано ниже, но отображается весь идентификатор.

Output Screenshot

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Ваша проблема в этом foreach цикле:

     <?php foreach($obj['fields'] as $parc){ ?>

         <a href="<?php echo $parc['summary']; ?>">
             <span><?php echo $parc['description']; ?></span>
         </a>

   <?php }

$parc будет иметь значение $obj['fields']['summary'], а затем $obj['fields']['description'] в цикле, поэтому при попытке индексировать его с помощью ['summary'] вы используете недопустимый индекс, который переводится в 0 (отсюда один символ ). Попробуйте вместо этого (удалите foreach):

     <a href="<?php echo $obj['fields']['summary']; ?>">
         <span><?php echo $obj['fields']['description']; ?></span>
     </a>
0 голосов
/ 16 января 2019

я думаю fields не массив.

Изменить $parc['summary'] на $obj['fields']['summary']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...