Как преобразовать объект литерала JavaScript в объект Json в PHP

У меня есть строковая строка буква JS, такая как {name:{first:"George",middle:"William"},surname:"Washington"}, и мне нужно ее преобразовать в 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'] для эха "Вашингтон".