簡體   English   中英

從 Mysql 單元格內的嵌套 JSON 中提取數據

[英]Extract data from nested JSON inside Mysql cell

我需要從 MySQL 單元格 $row["detail"] 中的 JSON 中提取一些數據。 這是我需要的數據:options->408->value":"72" 和 options->409->value":"80"

這是我的 JSON

"132":{
      "id":132,
      "name":"Taille",
      "invoice_name":"Taille",
      "displayed_in_preview":"1",
      "displayed_in_order":"1",
      "input_suffix":"cm",
      "use_qty":"0",
      "required":"1",
      "ignored_if_empty":"1",
      "options":{
         "408":{
            "id":408,
            "id_option":104,
            "name":"Hauteur ",
            "selected_by_default":"0",
            "check_default":"0",
            "position":0,
            "min":70,
            "max":74,
            "default":"72",
            "weight":0,
            "delivery_impact":0,
            "value":"72",
         },
         "409":{
            "id":409,
            "id_option":105,
            "name":"Largeur",
            "selected_by_default":"0",
            "check_default":"0",
            "position":1,
            "min":70,
            "max":100,
            "default":"70",
            "weight":0,
            "delivery_impact":0,
            "value":"80",
         }
      }

但我收到一個錯誤。

我試試這段代碼:

$url = $row["detail"];
    $JSON_arr = json_decode($url, true);
    foreach($json_arr as $key){
      print $key -> options -> value

但我收到一個錯誤。

這是您的代碼示例:

<?php

$json = '{
    "132": {
        "id": 132,
        "name": "Taille",
        "invoice_name": "Taille",
        "displayed_in_preview": "1",
        "displayed_in_order": "1",
        "input_suffix": "cm",
        "use_qty": "0",
        "required": "1",
        "ignored_if_empty": "1",
        "options": {
            "408": {
                "id": 408,
                "id_option": 104,
                "name": "Hauteur ",
                "selected_by_default": "0",
                "check_default": "0",
                "position": 0,
                "min": 70,
                "max": 74,
                "default": "72",
                "weight": 0,
                "delivery_impact": 0,
                "value": "72"
            },
            "409": {
                "id": 409,
                "id_option": 105,
                "name": "Largeur",
                "selected_by_default": "0",
                "check_default": "0",
                "position": 1,
                "min": 70,
                "max": 100,
                "default": "70",
                "weight": 0,
                "delivery_impact": 0,
                "value": "80"
            }
        }
    }
}';

$JSON_arr = json_decode($json, true);

foreach ($JSON_arr as $row) {
    foreach ($row['options'] as $option => $data)
    echo 'option ' . $option . ' -> ' .'value: ' . $data['value'] . PHP_EOL;
}

Output:

option 408 -> value: 72 
option 409 -> value: 80

或者在這里

暫無
暫無

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

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