Когда имеешь дело с действительным JSON, вам не нужно делать ничего особенного, чтобы использовать результат в PHP до тех пор, пока вы не используете extract().
Admiditly выглядит чище, чтобы json_decode возвращал массив здесь, как предлагает Jay Bhatt, но вы также можете использовать обычный объект в качестве возврата (который является экземпляром stdclass).
Свойства возвращаемого объекта могут быть практически любыми. Вам просто нужно использовать имя свойства как php-строку вместо жестко закодированного литерала.
$obj->{'a sentence with spaces and umlauts äüö is valid here'}
<?php
$json = <<<JSON
{"general":{
"round-corner":"0",
"border-stroke":"2",
"background-color äü??$%§":"#ffffff"
}
}
JSON;
$obj = json_decode($json);
$keyName = "round-corner";
var_dump($obj->general->{'round-corner'});
var_dump($obj->general->$keyName);
var_dump($obj->general->{'background-color äü??$%§'});
Result
насчет только изменяя их до декодирования строки? str_replace() http://www.php.net/manual/en/function.str-replace.php – jtheman
Те будут отображаться как ключи в массиве или свойствах объекта. Вы также используете экстракт на этом массиве? – mishu