循环 JSON 数据只显示第一个字符
Looping JSON data only shows the first character
我正在尝试输出来自 JIRA 的特定信息,我有 JSON 循环和结果显示,但嵌套最下方的结果只显示第一个字符。
我已经尝试按照建议 here 进行操作,但这似乎是为了在顶层获得结果,我似乎无法使用我的代码。
<?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/]"
}
}
]
}
但循环输出仅显示描述和摘要的第一个字符,如下所示,但显示整个 ID。
非常感谢任何帮助。
我认为 fields
不是数组。
将$parc['summary']
更改为$obj['fields']['summary']
您的问题出在这个 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>
我正在尝试输出来自 JIRA 的特定信息,我有 JSON 循环和结果显示,但嵌套最下方的结果只显示第一个字符。
我已经尝试按照建议 here 进行操作,但这似乎是为了在顶层获得结果,我似乎无法使用我的代码。
<?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/]"
}
}
]
}
但循环输出仅显示描述和摘要的第一个字符,如下所示,但显示整个 ID。
非常感谢任何帮助。
我认为 fields
不是数组。
将$parc['summary']
更改为$obj['fields']['summary']
您的问题出在这个 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>