簡體   English   中英

PHP 從嵌套的 JSON 數組中檢索值

[英]PHP Retrieve Value from Nested JSON Array

我正在使用以下 JSON Object:

    {
  "body": {
    "subject": "Lorem ipsum dolor sit amet, consectetur adipiscing elit", 
    "to": [
      {
        "location": "Hawthorne, CA", 
        "name": "Jeff Daniels", 
        "phoneNumber": "+15552123456", 
        "target": true
      }
    ], 
    "type": "SMS"
  }, 
  "uuid": "5797377010673708914"
}

我正在嘗試檢索某些值,但無法計算出獲取 to phoneNumber 值的語法。 到目前為止,這是我正在做的事情:

$webhook= json_decode( $webhookJSON, TRUE );
$subject = $webhook['body']['subject'];
$toPhoneNumber = $webhook['body']['to']['phoneNumber'];

我得到$subject但不是$toPhoneNumber 我嘗試在幾個地方添加[0]以獲取數組的第一個成員,但這也不起作用,在這個階段,我很難理解如何從嵌套數組中獲取 to phoneNumber 值。

您添加[0]的方式是正確的。 我強烈建議,如果您不確定,您應該使用print_r()仔細檢查數組的結構。 它會給你這個:

Array
(
    [body] => Array
        (
            [subject] => Lorem ipsum dolor sit amet, consectetur adipiscing elit
            [to] => Array
                (
                    [0] => Array
                        (
                            [location] => Hawthorne, CA
                            [name] => Jeff Daniels
                            [phoneNumber] => +15552123456
                            [target] => 1
                        )

                )

            [type] => SMS
        )

    [uuid] => 5797377010673708914
)

如您所見,您可以通過以下方式訪問電話號碼

$toPhoneNumber = $webhhok['body']['to'][0]['phoneNumber'];

原因是,每次使用[]時,您都會在 json 中啟動一個數組。 這就是為什么您需要使用索引來訪問元素的原因。

當您負責 json 時,我建議您移除陣列,因為您不需要它,除非您想要有多個接收者:

{
  "body": {
    "subject": "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
    "to": {
      "location": "Hawthorne, CA",
      "name": "Jeff Daniels",
      "phoneNumber": "+15552123456",
      "target": true
    },
    "type": "SMS"
  },
  "uuid": "5797377010673708914"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM