我有以下代码:
$param = $params[0];
var_dump($param->getValue());
$test = json_decode($param->getValue());
var_dump($test);
我的第一个 var_dump 返回以下内容:
string(133) ""[{\"lang_id\": \"1\", \"naam\": \"dsfsdfds\", \"mail\": \"dsfdsfs\"}, {\"lang_id\": \"1\", \"naam\": \"dfsd\", \"mail\": \"dfds\"}]""
第二个返回以下内容:
string(107) "[{"lang_id": "1", "naam": "dsfsdfds", "mail": "dsfdsfs"}, {"lang_id": "1", "naam": "dfsd", "mail": "dfds"}]"
并且该值保存在我的数据库中,如下所示:
"[{\"lang_id\": \"1\", \"naam\": \"dsfsdfds\", \"mail\": \"dsfdsfs\"}, {\"lang_id\": \"1\", \"naam\": \"dfsd\", \"mail\": \"dfds\"}]"
现在我的问题是:为什么它在 json_decode 之后返回一个字符串?我完全不知道我做错了什么,最奇怪的是,如果我用该变量的实际值替换变量,那么解码是正确的:
$test = json_decode("[{\"lang_id\": \"1\", \"naam\": \"dsfsdfds\", \"mail\": \"dsfdsfs\"}, {\"lang_id\": \"1\", \"naam\": \"dfsd\", \"mail\": \"dfds\"}]");
返回
array(2) {
[0]=> object(stdClass)#3255 (3) {
["lang_id"]=> string(1) "1"
["naam"]=> string(8) "dsfsdfds"
["mail"]=> string(7) "dsfdsfs"
}
[1]=> object(stdClass)#3256 (3) {
["lang_id"]=> string(1) "1"
["naam"]=> string(4) "dfsd"
["mail"]=> string(4) "dfds"
}
}
我究竟做错了什么?