繁体   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