簡體   English   中英

在解碼和獲取 json 值時出現錯誤?

[英]while decoding and getting json value i am getting error?

在數據庫表的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);
}

但我的錯誤如下:

消息:未定義的屬性:stdClass::$Color

我得到了價值

value => color,size 

之后需要動態傳遞以上值並獲得

color => red,blue,white 

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
)

嘗試 :

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM