jquery 当解码和获取json值时,我得到错误?

ldioqlga  于 2022-12-22  发布在  jQuery
关注(0)|答案(2)|浏览(120)

在数据库表的productoptions列中,我插入如下所示的值:

[{"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] => ) ) )

解码后,我试图得到特定的对象(颜色,大小等)

foreach ($jsonvalue as $key => $values) {
  print_r($vales->Color);
}

但我的错误如下:
消息:未定义的属性:标准类::$颜色
我正在获得价值

value => color,size

之后需要动态传递上述值并得到

color => red,blue,white
gywdnpxw

gywdnpxw1#

JSON结构有点奇怪,数据和结构混合在一起。
但是如果使用print_r($jsonvalue);,您可以看到数组和对象是如何布局的,这表明[0]项具有value元素,[1]具有由值指示的数据,因此...
value元素中的一个项目是"",这可能会造成问题,因此您可能想要加入检查以忽略空白项目。

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
)
ct3nt3jp

ct3nt3jp2#

试试看:

foreach ($jsonvalue as $key => $values) {
  print_r($vales->{$key});
}

相关问题