我正在开发一个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}";
}
但我得到的结果是数组。
答案 0 :(得分:4)
print_r($issues->fields->customfield_11054);
这是一个数组,这就是为什么它说它是一个数组。如果你想获得价值,你必须在那里包装另一个foreach:
foreach ($json_output->issues as $issues) { echo $issues->key; echo $issues->fields->summary; echo $issues->fields->created; echo $issues->fields->reporter->name; foreach($issues->fields->customfield_11054 as $customField) { echo $customField; } }
另外,作为附注,您不需要将变量放在“{}”中以将其打印出来。它们是字符串,所以只使用echo $variable;
就可以正常工作(就像我在上面的snippit中所做的那样)。
答案 1 :(得分:0)
为简单起见使用此
$data = json_decode($result,true);
foreach ($data as $values) {
//then do stuff here
}
答案 2 :(得分:0)
使用implode功能
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);
}