В PHP вы можете использовать json_encode
для кодирования объекта в виде строки json.
$string = json_encode($some_object);
Тем не менее, в PHP есть стандартное множество типов данных, которые не считаются объектами (целыми числами, строками и т. Д.). Если вы передаете строку в json_encode
, она возвращает строку, содержащую инструкцию javascript, которую можно использовать для определить строку.
Менее неловко, это
echo json_encode("Hello
world, please don't " . '"' . "misuse quote's for emphasis " . "or possessive apostrophes' ");
выведет это (готовая строка javascript)
"Hello \n\tworld, please don't \"misuse quote'sor possessive apostrophes' "
Является ли это поведение частью спецификации JSON? То есть JSON определяет или рекомендует, как реализация должна обрабатывать преобразование нативных, необъектных типов данных? Или вообще есть мнение о конверсии вообще? Мое чтение RFC оставило это как неоднозначное, но я дерьмо интерпретирую эти вещи.
Я спрашиваю, потому что меня интересует вероятность того, что это поведение исчезнет из будущей версии функции. то есть, если это где-то кодифицировано в спецификации, вероятность его исчезновения будет меньше, чем если бы это был кто-то, кого кто-то думал добавить во время разработки.