以下是JSON输出
{
"bugs": [
{
"is_confirmed": true,
"cc": [
],
"deadline": null,
"qa_contact": "",
"last_change_time": "2016-09-12T04:57:53Z",
"creation_time": "2016-09-12T04:57:03Z",
"keywords": [
],
"classification": "Unclassified",
"assigned_to": "ashish.sureka@in.abb.com",
"priority": "Highest",
"is_open": true,
"creator": "ashish.sureka@in.abb.com",
"target_milestone": "---",
"creator_detail": {
"name": "ashish.sureka@in.abb.com",
"id": 1,
"real_name": "Ashish Sureka",
"email": "ashish.sureka@in.abb.com"
},
"is_cc_accessible": true,
"op_sys": "Windows",
"component": "TestComponent",
"status": "CONFIRMED",
"resolution": "",
"platform": "PC",
"depends_on": [
],
"groups": [
],
"summary": "Checking if Bugzilla REST API is working or not",
"cc_detail": [
],
"assigned_to_detail": {
"name": "ashish.sureka@in.abb.com",
"email": "ashish.sureka@in.abb.com",
"id": 1,
"real_name": "Ashish Sureka"
},
"alias": [
],
"whiteboard": "",
"version": "unspecified",
"url": "",
"see_also": [
],
"id": 1,
"dupe_of": null,
"severity": "critical",
"product": "TestProduct",
"blocks": [
],
"is_creator_accessible": true,
"flags": [
]
}
],
"faults": [
]
}
我的计划
// Location of the resource (Bug Report)
$url = "http://localhost:8080/bugzilla/rest/bug/1";
// Instantiate an instance of cURL
$curl = curl_init();
// cURL settings, URL to send request to
curl_setopt($curl, CURLOPT_URL, $url);
// cURL settings, Return the response as a string
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Execute the cURL request
$result = curl_exec($curl);
// Close the cURL request
curl_close($curl);
//echo "<BR>Product: ". $result->product;
//echo "<BR>Component: ".$result->component;
//echo "<BR>Version: ".$result->version;
//echo "<BR>Summary: ".$result->summary;
//echo "<BR>Priority: ".$result->priority;
//echo "<BR>Operating System".$result->op_sys;
我尝试使用json_encode
和json_decode
函数,并尝试从对象中提取属性或从数组中获取信息,但无法从{{获取产品,组件,版本,摘要,优先级等1}}
答案 0 :(得分:2)
试试这个
$data = json_decode('your json_code',true);
echo $data['bugs'][0]['component']."<br>";
echo $data['bugs'][0]['product']."<br>";
echo $data['bugs'][0]['version']."<br>";
echo $data['bugs'][0]['summary']."<br>";
输出
TestComponent
TestProduct
unspecified
Checking if Bugzilla REST API is working or not
在json_decode
TRUE
时,返回的objects
将转换为associative arrays
。http://php.net/manual/en/function.json-decode.php
答案 1 :(得分:1)
试试这个:
<?php
$str = '{
"bugs":[
{
"is_confirmed":true,
"cc":[
],
"deadline":null,
"qa_contact":"",
"last_change_time":"2016-09-12T04:57:53Z",
"creation_time":"2016-09-12T04:57:03Z",
"keywords":[
],
"classification":"Unclassified",
"assigned_to":"ashish.sureka@in.abb.com",
"priority":"Highest",
"is_open":true,
"creator":"ashish.sureka@in.abb.com",
"target_milestone":"---",
"creator_detail":{
"name":"ashish.sureka@in.abb.com",
"id":1,
"real_name":"Ashish Sureka",
"email":"ashish.sureka@in.abb.com"
},
"is_cc_accessible":true,
"op_sys":"Windows",
"component":"TestComponent",
"status":"CONFIRMED",
"resolution":"",
"platform":"PC",
"depends_on":[
],
"groups":[
],
"summary":"Checking if Bugzilla REST API is working or not",
"cc_detail":[
],
"assigned_to_detail":{
"name":"ashish.sureka@in.abb.com",
"email":"ashish.sureka@in.abb.com",
"id":1,
"real_name":"Ashish Sureka"
},
"alias":[
],
"whiteboard":"",
"version":"unspecified",
"url":"",
"see_also":[
],
"id":1,
"dupe_of":null,
"severity":"critical",
"product":"TestProduct",
"blocks":[
],
"is_creator_accessible":true,
"flags":[
]
}
],
"faults":[
]
}';
$result = json_decode($str);
echo $result->bugs[0]->product;
echo PHP_EOL;
echo $result->bugs[0]->component;
echo PHP_EOL;
echo $result->bugs[0]->version;
输出:
TestProduct
TestComponent
unspecified
答案 2 :(得分:1)
我认为您必须关注JSON的结构。它是一个有效的JSON,因此您可以使用PHP的函数 json_decode($ result)将JSON解析为对象。
然后使用 var_dump()查看对象的清晰概述。在那里,您可以看到如何获取信息。
示例:强>
$result = json_decode($result);
var_dump($result);
//Product:
$result->bugs[0]->product;
//Component:
$result->bugs[0]->component;
JSON验证器: http://jsonlint.com/