【问题标题】:How to echo json object properties in php? [duplicate]如何在 php 中回显 json 对象属性? [复制]
【发布时间】:2017-04-20 20:05:06
【问题描述】:

JSON 数据

"orders":[  
     "billing_details":{  
        "company":"Test Company",
        "firstname":"Munadil",
        "postcode":"5000",
        "street":"Dhaka, Bangladesh",
        "email":"munadil98@gmail.com",
        "lastname":"Fahad",
        "ph_number":"880191111111",
        "city":"Dhaka",
        "state":"Mirpur",
        "country_code":"BN",
        "user_id":16003511,
        "salutation":null
     }]

在 PHP 中

$json_output = json_decode($response);
foreach ( $json_output->orders as $orders ){
foreach ($orders->billing_details as $billing_details) {echo "<b>Name:</b><br>".$billing_details->firstname." ".$billing_details->lastname."<br>";}
}

但我收到以下错误消息,

注意:试图在....中获取非对象的属性。

如何在数组“orders”下的“billing_details”对象中回显数据?

【问题讨论】:

  • billing_details 是数组中的键。试试"orders":[{...}]
  • 你在哪里声明了变量 $orders?
  • 那是无效的 JSON。
  • @mike.k 请提及确切的语法以在 billing_details 中回显值
  • @MunadilFahad 首先请更正你的 json,因为你上面显示的那个是无效的!

标签: php arrays json object


【解决方案1】:

试试这个:

$json_output = json_decode($response);

foreach ($json_output['orders'] as $billing_details) {
echo "<b>Name:</b><br>$billing_details['firstname'] $billing_details['lastname']<br>";}

【讨论】:

  • 告诉我们这行得通。
  • @julekgwa 谢谢我更新了答案
  • 这行不通。
  • 我不明白为什么?
  • 你测试了吗?
【解决方案2】:

试试这个

$json_output = json_decode($response['orders']);

echo $json_output;

【讨论】:

  • 如何回显数组?顺便说一句,$response 在这一点上是一个字符串,所以$response['orders'] 将失败。
  • 问题已解决。实际上,我发现一些“订单”数组没有“billing_details”对象。这是返回错误的原因。对于具有“billing_details”对象的“orders”数组可以找到。所以,我摆脱了 if else 条件显示错误消息。谢谢大家的支持。
  • 你的问题解决了。太好了!!
猜你喜欢
  • 1970-01-01
  • 2013-07-19
  • 2020-05-20
  • 2012-03-10
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
相关资源
最近更新 更多