php如何使用json_decode数组中的值?

时间:2016-12-17 05:17:57

标签: 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);
$translation_decoded= json_decode($translation_json, true);

结果是:

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"
    }
  },

我从json响应中解码了这个数组,但面临问题要循环这个?我希望使用来自accessibility404password_pagesocial等的值。我如何从中获得价值?

3 个答案:

答案 0 :(得分:2)

因为仍然采用json格式,您需要再次解码值以使其成为数组

$decode = json_decode($translation_decoded['asset']['value']);

答案 1 :(得分:0)

$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'] ;

你可以用这种方式。请试试这个。

答案 2 :(得分:0)

在您的$depth功能中添加第三个json_decode选项,如何使用它参考manual和此post

$translation_decoded= json_decode($translation_json, true, $depth);