如何在laravel中编码返回的响应

时间:2015-02-21 10:17:25

标签: php arrays json laravel laravel-4

我正在尝试从返回的响应中编码一个字段。在使用sms api发送短信后,我得到了如下答复:

'{
    "ErrorCode":"000",
    "ErrorMessage":"Success",
    "JobId":"e51ca2d4-e3e6-415a-97f4-2e9a133f38e7",
    "MessageData":[
        {
            "Number":"91974ssdsd2",
            "MessageParts":[
                {
                    "MsgId":"91974ddddd-0fe367f3b1774e74bf7c06e21cf38482",
                    "PartId":1,
                    "Text":"The OTP for your login is uxlvRF"
                }
            ]
        }
    ]
}'

我将此回复转换为以下格式:

'[
    "ErrorCode"=>"000",
    "ErrorMessage"=>"Success",
    "JobId"=>"e51ca2d4-e3e6-415a-97f4-2e9a133f38e7",
    "MessageData"=>[
        ["Number"=>"919747dddddd",
            "MessageParts"=>[
                [
                    "MsgId"=>"9197ddddd-0fe367f3b1774e74bf7c06e21cf38482",
                    "PartId"=>1,
                    "Text"=>"The OTP for your login is uxlvRF"
                ]
            ]
        ]
    ]
]'

这是通过使用代码完成的:$ triggersms是实际响应

                $tgr_edt=str_replace(':', '=>', $triggersms);
                $tgr = str_replace('{', '[', $tgr_edt);
                $tgrnw = str_replace('}', ']', $tgr);

但是我尝试在我的laravel代码中使用$ tgrnw ['ErrorCode'],它显示错误

“offeset ErrorCode”..

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

乍一看,您收到的回复对我来说就像是JSON。

这样做:

$obj = json_decode($triggersms);
echo $obj->ErrorCode;

$array = json_decode($triggersms, true);
echo $array['ErrorCode'];

You can read more about json_decode at the php.net manual here