php如何使用json_解码数组中的值?
结果是:php如何使用json_解码数组中的值?,php,json,shopify,Php,Json,Shopify,结果是: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "X-Shopify-Access-Token: $token")); $translation_json = curl_exec($ch); $
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "X-Shopify-Access-Token: $token"));
$translation_json = curl_exec($ch);
$translation_decoded= json_decode($translation_json, true);
数组
(
[资产]=>阵列
(
[key]=>locales/en.default.json
[公共url]=>
[值]=>{
“一般”:{
“无障碍”:{
“跳到内容”:“跳到内容”,
“关闭模式”:“关闭(esc)”
},
“元”:{
“标记”:“标记\”{{tags}}\”,
“页面”:“页面{{page}”
},
"404": {
“标题”:“未找到404页”,
“潜文本”:“您请求的页面不存在。”,
“链接”:“继续购物”
},
“分页”:{
“先前”:“先前”,
“下一步”:“下一步”,
“当前页面”:“页面{{total}中的{current}}”
},
“密码页面”:{
“即将开业”:“即将开业”,
“登录表单标题”:“使用密码进入商店”,
“登录表单密码标签”:“密码”,
“登录表单密码占位符”:“您的密码”,
“登录表单提交”:“输入”,
“注册表格电子邮件标签”:“电子邮件”,
“注册表格成功”:“我们将在开张前向您发送电子邮件!”,
“admin\u link\u html”:“您是店主吗?在这里登录”,
“密码链接”:“使用密码输入”,
“powered_by_shopify_html”:“此商店将由{{shopify}提供动力”
},
“社会性”:{
“在facebook上分享”:“分享”,
“在推特上分享”:“推特”,
“在pinterest上共享”:“锁定它”,
“alt_文本”:{
“在facebook上分享”:“在facebook上分享”,
“在推特上分享”:“在推特上发布推特”,
“在pinterest上共享”:“pinterest上的Pin”
}
},
“搜索”:{
“no_results_html”:“您对\“{{terms}}\”的搜索未产生任何结果。”,
“带计数的结果”:{
“一”:“{terms}}\”的{count}结果,
“其他”:“{terms}”的{count}结果
},
“标题”:“搜索我们的网站”,
“占位符”:“搜索”,
“提交”:“提交”,
“关闭”:“关闭搜索”
},
“通讯表格”:{
“时事通讯电子邮件”:“加入我们的邮件列表”,
“电子邮件占位符”:“电子邮件地址”,
“确认”:“感谢订阅”,
“提交”:“订阅”
},
“过滤器”:{
“显示更多”:“显示更多”,
“少显示”:“少显示”
}
},
我从一个
json
响应中解码了这个数组,但在循环过程中遇到了问题?我想使用accessibility
、404
、password\u page
、social
等中的值。我如何从中获取值?因为仍然是json格式,您需要再次解码这些值才能将其转换为json格式排列
Array
(
[asset] => Array
(
[key] => locales/en.default.json
[public_url] =>
[value] => {
"general": {
"accessibility": {
"skip_to_content": "Skip to content",
"close_modal": "Close (esc)"
},
"meta": {
"tags": "Tagged \"{{ tags }}\"",
"page": "Page {{ page }}"
},
"404": {
"title": "404 Page Not Found",
"subtext": "The page you requested does not exist.",
"link": "Continue shopping"
},
"pagination": {
"previous": "Previous",
"next": "Next",
"current_page": "Page {{ current }} of {{ total }}"
},
"password_page": {
"opening_soon": "Opening Soon",
"login_form_heading": "Enter store using password",
"login_form_password_label": "Password",
"login_form_password_placeholder": "Your password",
"login_form_submit": "Enter",
"signup_form_email_label": "Email",
"signup_form_success": "We will send you an email right before we open!",
"admin_link_html": "Are you the store owner? Log in here<\/a>",
"password_link": "Enter using password",
"powered_by_shopify_html": "This shop will be powered by {{ shopify }}"
},
"social": {
"share_on_facebook": "Share",
"share_on_twitter": "Tweet",
"share_on_pinterest": "Pin it",
"alt_text": {
"share_on_facebook": "Share on Facebook",
"share_on_twitter": "Tweet on Twitter",
"share_on_pinterest": "Pin on Pinterest"
}
},
"search": {
"no_results_html": "Your search for \"{{ terms }}\" did not yield any results.",
"results_with_count": {
"one": "{{ count }} result for \"{{ terms }}\"",
"other": "{{ count }} results for \"{{ terms }}\""
},
"title": "Search our site",
"placeholder": "Search",
"submit": "Submit",
"close": "Close search"
},
"newsletter_form": {
"newsletter_email": "Join our mailing list",
"email_placeholder": "Email address",
"confirmation": "Thanks for subscribing",
"submit": "Subscribe"
},
"filters": {
"show_more": "Show More",
"show_less": "Show Less"
}
},
您可以使用这种方法。请尝试这种方法。将第三个
$depth
选项添加到您的json\u decode
函数中,如何使用它,请参阅
您可能需要在
$translation\u decoded['asset']['value']上再解码一次
将该值转换为另一个数组。好的,但是有更多的嵌套值。所以我必须对每个嵌套值执行此操作?该值是json编码的,因此如果有其他值一致地编码为json,那么yesNow,它工作了。谢谢-Rasclatt
$decode = json_decode($translation_decoded['asset']['value']);
$accessibility=$translation_decoded['asset']['value']['general']['accessibility'] ;
$social=$translation_decoded['asset']['value']['social'] ;
$password_page=$translation_decoded['asset']['value']['password_page'] ;
$Page404=$translation_decoded['asset']['value']['404'] ;
$translation_decoded= json_decode($translation_json, true, $depth);