将Json赋值给php变量

3

我希望将这个JSON详情做成动态的,目前它是静态的。例如,我想为这些JSON声明一些PHP变量。

这是我的代码:

$body = '{
  "outboundSMSMessageRequest": {
    "address": [
      "tel:+9456654978"
    ],

    "senderAddress": "tel:+95623654978",
    "outboundSMSTextMessage": {
      "message": "Welcome to fgf  Your Confirmation Code - "
    },

    "clientCorrelator": "",
    "receiptRequest": {
      "notifyURL": "",
      "callbackData": ""
    },
    "senderName": ""
  }
}';

如您所见,json已经声明了$body。我想做的是将其分成单独的变量,例如$message、$address和$senderAddress,并将它们赋值给$body。我该怎么做?


json转换为array后,您可以在添加后重新将其转换回json - Murad Hasan
创建一个你需要用于 JSON 的数组,然后使用 json_encode - Sibiraj PR
1个回答

4

初始的Json:

 $body = '{
      "outboundSMSMessageRequest": {
        "address": [
          "tel:+9456654978"
        ],

        "senderAddress": "tel:+95623654978",
        "outboundSMSTextMessage": {
          "message": "Welcome to fgf  Your Confirmation Code - "
        },

        "clientCorrelator": "",
        "receiptRequest": {
          "notifyURL": "",
          "callbackData": ""
        },
        "senderName": ""
      }
    }';

将json解码为数组

我使用第二个参数设置为true,因为我需要将数组作为关联数组。

$arr = json_decode($body, true);

现在插入必要的值:
$arr['outboundSMSMessageRequest']['address'] = "tel:+1234567890";
$arr['outboundSMSMessageRequest']['senderAddress'] = "tel:+0987654321";

$arr['outboundSMSMessageRequest']['outboundSMSTextMessage']['message'] = "test message";

现在将数组编码为json。
$body = json_encode($arr);

输出

print_r($body);

结果

{"outboundSMSMessageRequest":{"address":"tel:+1234567890","senderAddress":"tel:+0987654321","outboundSMSTextMessage":{"message":"test message"},"clientCorrelator":"","receiptRequest":{"notifyURL":"","callbackData":""},"senderName":""}}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接