次のコードがあります。
$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\"}]""
2番目のものは次を返します:
string(107) "[{"lang_id": "1", "naam": "dsfsdfds", "mail": "dsfdsfs"}, {"lang_id": "1", "naam": "dfsd", "mail": "dfds"}]"
値は次のように DB に保存されます。
"[{\"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"
}
}
私は何を間違っていますか?