[英]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.