当前位置: 首页 > 知识库问答 >
问题:

PHP获取json对象名称[重复]

谭新知
2023-03-14

我有这样的json数组

{
  "STATUS": "SUCCESS",
  "MESSAGE": "",
  "DATA": {
    "list": [
      {
        "val0": {
          "hidden": "0",
          "rate": "10"
        }
      },
      {
        "val1": {
          "hidden": "0",
          "rate": "20"
        }
      }
    ],
    "status": "Provisioned"
  }
}

我想得到DATA的对象名


共有3个答案

席俊
2023-03-14

尝试

$data = '{
                  "STATUS": "SUCCESS",
                  "MESSAGE": "",
                  "DATA": {
                    "list": [
                      {
                        "val0": {
                          "hidden": "0",
                          "rate": "10"
                        }
                      },
                      {
                        "val1": {
                          "hidden": "0",
                          "rate": "20"
                        }
                      }
                    ],
                    "status": "Provisioned"
                  }
                }';
        $data = json_decode($data); 

        $ss = $data->DATA->list;
        echo $ss[0]->val0->rate; 
郑星雨
2023-03-14

希望下面的自我解释片段能给你一个如何自己动手的建议。顺便说一下,你可以在这里快速测试它。

<?php

        $strJson        = '{
                                      "STATUS"      : "SUCCESS",
                                      "MESSAGE"     : "",
                                      "DATA"        : {
                                                "list"  : [
                                                  {
                                                      "val0"    : {
                                                          "hidden"  : "0",
                                                          "rate"    : "10"
                                                        }
                                                  },
                                                  {
                                                      "val1"    : {
                                                          "hidden"  : "0",
                                                          "rate"    : "20"
                                                       }
                                                }
                                                ],
                                            "cpe_status"  : "Provisioned"
                                      }
                             }';

        $objJson        = json_decode($strJson);
        $data           = $objJson->DATA;
        $lists          = $data->list;
        $list0          = $lists[0];
        $list1          = $lists[1];

        var_dump($lists);

上述var\u dump($lists)产生:

        array (size=2)
          0 => 
            object(stdClass)[47]
              public 'val0' => 
                object(stdClass)[46]
                  public 'hidden' => string '0' (length=1)
                  public 'rate' => string '10' (length=2)
          1 => 
            object(stdClass)[49]
              public 'val1' => 
                object(stdClass)[48]
                  public 'hidden' => string '0' (length=1)
                  public 'rate' => string '20' (length=2)

现在,您可以简单地使用这样一个简单的循环从List中获取所需的所有数据:

<?php

        foreach($lists as $objList){
            if(is_object($objList)){
                foreach($objList as $key=>$data){
                    // NOW, YOU CAN DO SOMETHING WITH THE DATA...
                    // LIKE GET THE `hidden` OR `rate` PROPERTIES/ATTRIBUTES
                    $hidden     = $data->hidden;
                    $rate       = $data->rate;
                    // var_dump($hidden);
                    // var_dump($rate);
                    // var_dump($key);
                    var_dump($data);
                }
            }
        }
韦阳晖
2023-03-14

使用json_decodelist也是一个数组,因此第一个键(0)表示val0,如果你想获得val0的内部内容,那么你必须再次循环它。

$data = '{
  "STATUS": "SUCCESS",
  "MESSAGE": "",
  "DATA": {
    "list": [
      {
        "val0": {
          "hidden": "0",
          "rate": "10"
        }
      },
      {
        "val1": {
          "hidden": "0",
          "rate": "20"
        }
      }
    ],
    "cpe_status": "Provisioned"
  }
}';

$data = json_decode($data, true);

foreach($data['DATA']['list'][0] as $key=>$value){
    echo $key; // return val0
    echo "<br/>";
    // to get val0 inner content
    foreach($value as $item=>$list){
        echo $item." - ".$list; // return val0 inner data
        echo "<br/>";   
    }
}

// alternative way for loop val0 inner content
foreach($data['DATA']['list'][0]['val0'] as $key=>$value){
    echo $key." - ".$value; // return val0 inner data
    echo "<br/>";   
}
 类似资料:
  • 问题内容: 我有以下JSON: 我拼命尝试访问动态对象名称,如,该怎么办? 现在我有: 问题答案: 我可以想象,最简单的方法是解码为关联数组而不是stdClass对象

  • 问题内容: 有什么解决方案来获取对象的函数名称? -没有有关或的信息。有可能得到其中之一吗? 问题答案: 获取对象的构造函数,然后检查其name属性。 返回“ myClass”。

  • 问题内容: 我想知道JavaScript中是否有任何方法可以像这样遍历对象。 但是这样获取每个属性的名称。 我似乎在Google上找不到类似的东西。他们说与他们一起传递变量的名称,但这不是我要实现的选择。 谢谢你的尽心帮助。 问题答案: 使用Object.keys(): 给您一个属于输入对象的属性名称数组。

  • 问题内容: 是否有一个JavaScript的等效的Java的? 问题答案: 是否有与Java等效的JavaScript ? 没有 。 名称为。不论类别如何,的类别名称均为。ES2015环境中的内置构造函数具有正确的属性;例如是。 但是,这里有各种各样的骇客,它们都以一种或另一种方式下降: 这是一种可以满足您需要的技巧-请注意,它会修改Object的原型,而人们对此并不满意(通常是出于充分的理由)

  • 本文向大家介绍JavaScript 获取函数对象的名称,包括了JavaScript 获取函数对象的名称的使用技巧和注意事项,需要的朋友参考一下 示例 6 ES6: 关于MDN的说明。自2015年起,可以在nodejs和除IE之外的所有主要浏览器中使用。 5 ES5: 如果您有对该功能的引用,则可以执行以下操作:

  • 示例JSON 我想要一个数组[属性1,属性2] 如何使用est保证的JSON路径提取器实现?