Codeigniter:尝试在明显正确的对象上获取非对象的属性

时间:2016-04-17 15:31:35

标签: php json codeigniter object

我有以下json字符串:

 "{"name":"select","id":"select","class":"form-control select","type":"select","data-input-type":"select","options":"\"Primo:primo\\r\\nSecondo:secondo\""}"

如果我json_decode它的结果如下:

 object(stdClass)#30 (6) {
  ["name"]=>
  string(6) "select"
  ["id"]=>
  string(6) "select"
  ["class"]=>
  string(19) "form-control select"
  ["type"]=>
  string(6) "select"
  ["data-input-type"]=>
  string(6) "select"
  ["options"]=>
  string(32) ""Primo:primo\r\nSecondo:secondo""
}

对我来说似乎是对的。 我正在尝试获取名为“ options ”的字符串并回显它。但是当我var_dump(json_decode($post_field->meta_value->options))出现错误时会出现:

  

遇到PHP错误        

严重性:注意

      

消息:尝试获取非对象的属性

它出了什么问题?

1 个答案:

答案 0 :(得分:0)

$post_field->meta_value是json字符串。 $post_field->meta_value->options不是。 json_decode() function只能转换json字符串,但您尝试访问它的子字符串。您必须首先使对象或数组能够接近某些属性或密钥。

$meta_value = json_decode($post_field->meta_value);
$options = $metavalue->options;
var_dump($options);