【问题标题】:Not able to parse JSON in php with numeric key [duplicate]无法使用数字键解析 php 中的 JSON [重复]
【发布时间】:2018-03-04 23:11:12
【问题描述】:

这是我的错误代码

解析错误:语法错误,意外的 '24' (T_LNUMBER),在 C:\xampp\htdocs\block_gecko\front\index.php 中需要标识符 (T_STRING) 或变量 (T_VARIABLE) 或 '{' 或 '$'在第 186 行

echo '<td style="font-size: 120%;">' .$character->24hour . '</td>';

【问题讨论】:

    标签: php json core


    【解决方案1】:

    PHP 变量不能以数字字符开头。试试这个:

    $var = '24hour' ;
    echo '<td style="font-size: 120%;">' .$character->$var . '</td>';
    

    例子:

    $json = json_decode('{"24hour":"test"}');
    $key = "24hour";
    echo $json->$key; // "test"
    

    或转换您的 JSON as array (json_decode($data, true)) 并使用:

    echo '<td style="font-size: 120%;">' .$character['24hour'] . '</td>';
    

    另一种方式(感谢@mickmackusa):

    $json = json_decode('{"24hour":"test"}');
    var_dump($json->{'24hour'});
    

    【讨论】:

    • @mickmackusa 哦!抱歉,没在意。
    • 不用担心。只知道有第三种选择可以解决这个问题。换上{}
    • @mickmackusa 对!我总是忘记这个。谢谢!
    • 这不是一个重复的问题,我已经检查过该问题但没有找到这样的答案:/
    • @blockGecko 它也有效。检查更新答案的最后一种方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多