Php 在解码和获取json值时,我得到了错误?
在数据库表中的productoptions Column中,我插入如下值Php 在解码和获取json值时,我得到了错误?,php,jquery,Php,Jquery,在数据库表中的productoptions Column中,我插入如下值 [{"value":["Color","size",""]},{"Color":["Red","Blue","white"],"size":["L","XL"]},{"type":["Dropdown","Checkbox",""]}] 之后,我得到了选项值 $opt =$value->ProductOptions; 然后,我使用以下代码对json值进行解码 $jsonvalue = json_decode($o
[{"value":["Color","size",""]},{"Color":["Red","Blue","white"],"size":["L","XL"]},{"type":["Dropdown","Checkbox",""]}]
之后,我得到了选项值
$opt =$value->ProductOptions;
然后,我使用以下代码对json值进行解码
$jsonvalue = json_decode($opt);
然后我得到如下值
Array ( [0] => stdClass Object ( [value] => Array ( [0] => Color [1] => size [2] => ) ) [1] => stdClass Object ( [Color] => Array ( [0] => Red [1] => Blue [2] => white ) [size] => Array ( [0] => L [1] => XL ) ) [2] => stdClass Object ( [type] => Array ( [0] => Dropdown [1] => Checkbox [2] => ) ) )
解码后,我试图获得特定对象(颜色、大小等)
但我的错误如下:
消息:未定义的属性:stdClass::$Color
我得到了价值
value => color,size
之后需要动态传递上述值并获取
color => red,blue,white
尝试:
JSON结构有点奇怪,数据和结构混合在一起 但是如果您使用
print\r($jsonvalue)
您可以看到数组和对象的布局,这表明[0]
项具有值元素,[1]
具有由值指示的数据,因此
值
元素中的一个项目是”
,这可能会导致问题,因此您可能需要添加一个检查以忽略空项目
foreach ( $jsonvalue[0]->value as $types ) {
if ( !empty($types) ) {
echo $types.PHP_EOL;
print_r($jsonvalue[1]->{$types});
}
}
给你
Color
Array
(
[0] => Red
[1] => Blue
[2] => white
)
size
Array
(
[0] => L
[1] => XL
)
使用此代码后,我得到错误代码:消息:未定义属性:stdClass::$0尝试使用数组而不是对象$jsonvalue=json\u decode($opt)
到$jsonvalue=json\u解码($opt,true)代码>和打印($vales->{$key})代码>至打印($vales[$key])代码>
foreach ( $jsonvalue[0]->value as $types ) {
if ( !empty($types) ) {
echo $types.PHP_EOL;
print_r($jsonvalue[1]->{$types});
}
}
Color
Array
(
[0] => Red
[1] => Blue
[2] => white
)
size
Array
(
[0] => L
[1] => XL
)