json字符串更多时候需要后台动态变化,即使明白{}为对象,[]为数组,但很多字符串结构比较复杂,诸如 [ ['USD', 58.9], ['BTC', 13.29], ['TCN', 13], { name: 'Other', y: 7.61, dataLabels: { enabled: false } } ],写错了就会出问题。
试错多次仍不能成功,与其一次次试,不如反其道而行之,通过json_decode解析结构。
json_decode($json)解析为object(stdClass),添加json_decode($json,true)解析为数组。
error_reporting(-1);加在页面可提供出错的信息
$tStr = '[["type","pie"],["name","Browser share"],["innerSize","55%"],{"name":"Browser share","innerSize":"55%"}]';
$arr = json_decode($tStr,true);
print_r($arr);
输出Array ( [0] => Array ( [0] => type [1] => pie ) [1] => Array ( [0] => name [1] => Browser share ) [2] => Array ( [0] => innerSize [1] => 55% ) [3] => Array ( [name] => Browser share [innerSize] => 55% ) )
测试字符串外面用‘’,内容以""可正确解析,反之则为空,不知原因。