JSON 解码 PHP 中的多个嵌套 JSON
JSON decode multiple nested JSON in PHP
我正在使用一个名为 King composer for wordpress 的页面构建器,我正在尝试构建一些自定义功能,就像预期的那样。
我的问题是,内置背景颜色选择器是对背景属性进行 base64 编码,所以我需要解码它 - 但首先我需要解码 'my-css' json,所以我可以访问不同的属性。
这是我从建筑商那里得到的return。
array (
'_id' => '69391',
'image' => '294,9,16',
'gallery-text' => 'Dette er nærmest et galleri',
'my-css' => '{
`kc-css`:{
`any`:{
`typography`{`color|`:`#ffffff`},
`background`{`background|`:`longBase64StringHere`},
`box`:{`margin|`:`100px inherit inherit inherit`}
}
}
}',
)
到目前为止我已经尝试过:
$decodedBackground = base64_decode($atts['my-css']);
其中 return 为空
然后我尝试了:
$decodedJson = json_decode($atts['my-css']);
其中 returns : 空
还尝试了其他一些严重错误的东西
我不太明白,我可以很好地访问其他属性,因为它只是数组的一部分,但是 CSS 部分,我无法理解。我想我需要更深入地了解 - 但我无法让它发挥作用。
现在卡住了大约 1.5 个小时,所以任何帮助或指点将不胜感激
/------ 编辑 -----/
这就是我之后尝试检查解码的 json 的方式 -
可能很重要。
$decodedJson = json_decode($atts['my-css'], true);
echo '<pre>' . var_export($decodedJson, true) . '</pre>';
这可能不是最好的方法,因为 kc-css
中的 JSON 格式不正确,但此代码适用于您的情况:
// Refomating JSON
$atts['my-css'] = str_replace('`{', '`:{', $atts['my-css']);
$atts['my-css'] = str_replace('`', '"', $atts['my-css']);
$json = json_decode($atts['my-css'], true);
我正在使用一个名为 King composer for wordpress 的页面构建器,我正在尝试构建一些自定义功能,就像预期的那样。
我的问题是,内置背景颜色选择器是对背景属性进行 base64 编码,所以我需要解码它 - 但首先我需要解码 'my-css' json,所以我可以访问不同的属性。
这是我从建筑商那里得到的return。
array (
'_id' => '69391',
'image' => '294,9,16',
'gallery-text' => 'Dette er nærmest et galleri',
'my-css' => '{
`kc-css`:{
`any`:{
`typography`{`color|`:`#ffffff`},
`background`{`background|`:`longBase64StringHere`},
`box`:{`margin|`:`100px inherit inherit inherit`}
}
}
}',
)
到目前为止我已经尝试过:
$decodedBackground = base64_decode($atts['my-css']);
其中 return 为空
然后我尝试了:
$decodedJson = json_decode($atts['my-css']);
其中 returns : 空
还尝试了其他一些严重错误的东西
我不太明白,我可以很好地访问其他属性,因为它只是数组的一部分,但是 CSS 部分,我无法理解。我想我需要更深入地了解 - 但我无法让它发挥作用。
现在卡住了大约 1.5 个小时,所以任何帮助或指点将不胜感激
/------ 编辑 -----/
这就是我之后尝试检查解码的 json 的方式 - 可能很重要。
$decodedJson = json_decode($atts['my-css'], true);
echo '<pre>' . var_export($decodedJson, true) . '</pre>';
这可能不是最好的方法,因为 kc-css
中的 JSON 格式不正确,但此代码适用于您的情况:
// Refomating JSON
$atts['my-css'] = str_replace('`{', '`:{', $atts['my-css']);
$atts['my-css'] = str_replace('`', '"', $atts['my-css']);
$json = json_decode($atts['my-css'], true);