我正在尝试创建一个以下列格式输出json的php脚本,但我似乎并没有绕过它。
{
"authentication_credentials": {
"api_key": "hybghhmimjij48fr847gt4fdf847v8",
"app_secret": "84984ff48448gf484198dfs818"
},
"sms_payload": [
{
"message": "Test Message",
"msisdn": "123456789",
"third_party_message_id": "samplestring"
}
],
"sender_id": "12345"
}
这是我试图转换json的PHP代码
$api_key = "hybghhmimjij48fr847gt4fdf847v8";
$app_secret = "84984ff48448gf484198dfs818";
$message = "Test Message";
$msisdn = '123456789';
$third_party_message_id = 'samplestring';
$sender_id = '12345';
$data .= array('api_key'=>$api_key,'app_secret'=>$app_secret);
$data .= array('message'=>$message,'msisdn'=>$msisdn,'third_party_message_id'=>$third_party_message_id);
$data .= array('sender_id'=>$sender_id);
$data_string = json_encode($data);
echo $data_string;
我应该在代码中添加哪些其他的twerks以使其以上述格式输出json。
答案 0 :(得分:3)
你可以这样编码:
$data['authentication_credentials'] = array('api_key'=>$api_key,'app_secret'=>$app_secret);
$data['sms_payload'] = array('message'=>$message,'msisdn'=>$msisdn,'third_party_message_id'=>$third_party_message_id);
$data['sender_id'] = $sender_id;
echo json_encode($data);
一些解释:
根据您所需的json结果,您需要使用associative array
非连接变量。
更新1:
检查完最后的评论后:
这在技术上是我想要实现的目标。 谢谢它解决了我的问题。 - nick 7小时前
我正在为未来的访问者添加此解决方案作为更新1:
$data['sms_payload'] = array(
array(
'message'=>$message,
'msisdn'=>$msisdn,
'third_party_message_id'=>$third_party_message_id
));
<强>结果:强>
"sms_payload":[{"message":"test","msisdn":"111","third_party_message_id":13213}]
答案 1 :(得分:0)
使用选项JSON_PRETTY_PRINT
$data_string = json_encode($data, JSON_PRETTY_PRINT);
echo $data_string;
关于此命令的
修改强>
我怎么看,你有数据准备问题,你必须写这样的东西:
$data = (object)[
"authentication_credentials" =>
(object)[
'api_key' => $api_key,
'app_secret' => $app_secret
],
//...
];