Мне нужно получить объект JSON из базы данных, преобразовать его в объект php и выполнить для каждой пары ключ => значение.
Объект JSON хранится с JSON .stringify (obj) в текстовом поле MySQL. Впоследствии я получаю данные с PDO, но у меня такая же непонятная проблема, как декодировать объект json в объект в php. Результатом всегда является строка .
$export = $data['document']->tax_rates;
$export = json_encode($export);
$export = json_decode($export);
var_dump($export);
echo($export)
// only test
var_dump(json_decode($data['document']->tax_rates));
var_dump($data['document']->tax_rates)
$jsontest = json_decode('{"a":1,"b":2}');
var_dump($jsontest);
Результат:
string(42) "{"7":39729.69,"19":107.73}" // var_dump
{"7":39729.69,"19":107.73} // echo
NULL // result of decode without encode before
string(42) "{"7":39729.69,"19":107.73}" // var_dump raw data['document']
//test result as it should be
object(stdClass)#21 (2) {
["a"]=>
int(1)
["b"]=>
int(2)
}
Отладка Json выводит ошибку: JSON_ERROR_SYNTAX. Но это действительный объект JSON.
Как я могу создать здесь объект php и где моя проблема в этом случае? Если я правильно понимаю, вывод является строкой, потому что, поскольку он хранится в текстовом поле, это уже строка. Если это так, то можно ли так поступить или это невозможно? Спасибо.