1

Following is the JSON output

{
  "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": [

 ]
}

of my program

        // 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;

I tried using json_encode and json_decode functions and tried to extract properties from object or get information from array but not able to get the product, component, version, summary, priority etc from the $result

mario.van.zadel
  • 2,919
  • 14
  • 23
user1468768
  • 191
  • 2
  • 13

3 Answers3

2

Try this

$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>";

Output

TestComponent
TestProduct
unspecified
Checking if Bugzilla REST API is working or not

In json_decode When TRUE, returned objects will be converted into associative arrays.http://php.net/manual/en/function.json-decode.php

Passionate Coder
  • 7,154
  • 2
  • 19
  • 44
1

Try this:

<?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;

Output:

TestProduct
TestComponent
unspecified
Jigar
  • 3,256
  • 1
  • 30
  • 51
1

I think you have to look to the structure of the JSON. It is a valid JSON so you can use PHP's function json_decode($result) to parse the JSON into an object.

Then use var_dump() to see a clear overview of the object. There you can see how you can get the information.

Example:

$result = json_decode($result);
var_dump($result);

//Product:
$result->bugs[0]->product;

//Component:
$result->bugs[0]->component;

JSON validator: http://jsonlint.com/

Remco K.
  • 644
  • 4
  • 19