{"general":{
"round-corner":"0",
"border-stroke":"2",
"background-color":"#ffffff"
}
}
我有这个json字符串,我知道php变量名称不支持破折号。那么在这种情况下该怎么办?
答案 0 :(得分:13)
在处理有效的json时,只要不使用extract(),就不需要做任何特殊的事情来在php中使用结果。
另外,让json_decode像Jay Bhatt建议的那样返回一个数组看起来更清晰,但你也可以自由地使用普通对象作为return(这是stdclass的一个实例)。
返回对象的属性几乎可以是任何东西。您只需要将属性名称用作php-string而不是硬编码的文字。
$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 äü??$%§'});
答案 1 :(得分:5)
您可以使用这样的数组格式。加密的密钥可以使用。
<?php
$json = '{"general":{
"round-corner":"0",
"border-stroke":"2",
"background-color":"#ffffff"
}
}';
$array = json_decode($json, true);
echo $array['general']['border-stroke']; // prints 2
?>
这是demo