У меня есть строковая строка буква JS, такая как {name:{first:"George",middle:"William"},surname:"Washington"}
, и мне нужно ее преобразовать в Json. Как я могу сделать это с помощью PHP?
Как преобразовать объект литерала JavaScript в объект Json в PHP
Ответ 1
JS:
// Pretend we're POSTing this
var foo = {foo:{first:"George",middle:"William"}};
PHP:
$foo = $_POST['foo'];
$foo = json_decode( stripslashes( $foo ) );
echo $foo->first;
Кредит, при котором должен быть предоставлен кредит: https://www.youtube.com/watch?v=pORFYsgOXog
Ответ 2
Если вам посчастливилось узнать, какими будут ключи, когда они появятся в вашем скрипте, и вы знаете, что они не будут отображаться в значениях, вы можете сделать это с помощью str_replace()
, чтобы добавить двойные кавычки к ключам:
$notQuiteJson = '{name:{first:"George",middle:"William"},surname:"Washington"}';
$initialJson = array('name:','first:','middle:','surname:');
$replacedJson = array('"name":','"first":','"middle":','"surname":');
$convertedDataString = str_replace($initialJson, $replacedJson, $notQuiteJson);
$actualJson = json_decode($convertedDataString);
Надеюсь, это кому-нибудь поможет.
Ответ 3
Не json_encode, используйте $var = json_decode($_POST['names'], true)
. Затем вы можете использовать его как echo $var['surname']
для эха "Вашингтон".