更改stdClass对象的属性名称

时间:2017-05-22 12:22:38

标签: php json woocommerce

我正在为新的移动应用程序编写针对woocommerce网站的json回复。我是json,php,woocommerce的新手。

通过大量搜索,我得到了这个API。this

当我使用此行

时,我得到这样的回复

$data = $client->products->get('', array('filter[limit]' => '500'));

stdClass Object
(
    [products] => Array
        (
            [0] => stdClass Object
                (
                    [title] => Malai tikka roll
                    [id] => 2580
                    [created_at] => 2017-05-22T08:13:56Z
                    [updated_at] => 2017-05-22T08:14:38Z
                    [type] => simple
                    [status] => publish
                    [downloadable] => 
                    [virtual] => 
                    [permalink] => http://localhost/fooddemo/product/malai-tikka-roll/
                    [sku] => 
                    [price] => 75.00
                    [regular_price] => 75.00
                    [sale_price] => 

现在我要做的是更改一些字段并通过$response对象将json响应发送到我的Android应用程序。

我试过这样做,但它给了我错误 $response["Title"] = $data["title"];

  

未定义的索引:C:\ xampp \ htdocs \ demoservice \ productlist.php中的标题   在第15行

示例代码

<?php 
require_once( 'lib/woocommerce-api.php' );
$options = array(
    'debug'           => true,
    'return_as_array' => false,
    'validate_url'    => false,
    'timeout'         => 30,
    'ssl_verify'      => false,
);
$response = array("error" => FALSE);
try{
    require_once( 'key.php' );
    $data = $client->products->get('', array('filter[limit]' => '500'));
    //echo json_encode($response);
    $response["Title"] = $data["title"];
}catch ( WC_API_Client_Exception $e ) {

    require_once( 'catch.php' );
}

2 个答案:

答案 0 :(得分:1)

可以替换

吗?
$response["Title"] = $data["title"];

使用:

$response["Title"] = $data->products[0]->title;

答案 1 :(得分:1)

产品是主要对象的属性,本身就是一个数组。这就是你之后的事情:

foreach($data->products as $d) {
   echo $d->title, '<br />', $d->id, '<br />', $d->status;
}

如果要在没有循环的情况下访问其中一个元素,则需要提供数组索引,例如:

echo $data->products [0]->title