请一个真正快速的问题,我有这个来自我的查询的字符串
我能够使用xx = dd($sumx)
显示字符串,它给了我下面的字符串:
string(124) "[{"total":-4107717.58,"alerx":4,"currentYear":-4107717.58,"lastYear":0,"date":2015,"value":{"debit":0,"credit":4107717.58}}]"
我可以通过' - >'来访问它符号,像一个对象。我使用json_decode()
我再次回应它并给我这种对象格式:
array(1) {
[0]=>
object(stdClass)#508 (6) {
["total"]=>
float(-4107717.58)
["alerx"]=>
int(4)
["currentYear"]=>
float(-4107717.58)
["lastYear"]=>
int(0)
["date"]=>
int(2015)
["value"]=>
object(stdClass)#509 (2) {
["debit"]=>
int(0)
["credit"]=>
float(4107717.58)
}
}
}
当我尝试访问$sumx->value
时,它会给我一个`试图获取非对象的属性
我尝试通过$sumx[0]->value
同样的错误访问它,我也尝试将字符串验证为http://jsonlint.com/,并说它有效。有人可以指出我的错误吗。谢谢你的时间,祝你有个美好的一天。
答案 0 :(得分:1)
尝试如下: -
<?php
$data = '[{"total":-4107717.58,"alerx":4,"currentYear":-4107717.58,"lastYear":0,"date":2015,"value":{"debit":0,"credit":4107717.58}}]';
$new_array = json_decode($data);
echo "<pre/>";print_r($new_array);
echo "<pre/>";print_r($new_array['0']->value);
echo "<pre/>";print_r($new_array['0']->value->debit);
echo "<pre/>";print_r($new_array['0']->value->credit);
?>
输出: - https://eval.in/381395
注意: - 更改仅为$new_array['0']->value
。