【问题标题】:Check if a particular JSON Object is available or not in php检查特定的 JSON 对象在 php 中是否可用
【发布时间】:2013-03-16 01:08:59
【问题描述】:

我有以下 JSON:

$p={
  "main1" : [
    {
      "child1" : valueA,
      "child2" : valueB,
      "child3" : valueC,
    },
    {
      "child1" : value1,
      "child3" : value3,
    },
  ],
  "main2" : "valueMain2"
}

必须检查元素child2 是否存在,然后取值。我正在使用 json_decode:

$response = json_decode($p,true);

如何在 PHP 中检查元素是否存在?是要单独做功能还是有内置功能?

【问题讨论】:

  • isset($response['foo'])?
  • array_key_exists("child2", $response);
  • @lafor 谢谢它工作得很好。你可以把它放在答案中,我会接受它:)

标签: php json


【解决方案1】:

与检查任何数组的键是否存在的方法相同:

使用isset($array['key'])array_key_exists('key',$array)

【讨论】:

    【解决方案2】:

    这就是我的做法。

    $child2exists = count($response['main1']['child2']);
    
    If ($child2exists == 1) 
    { 
        echo "EXISTS"; 
    }
    else
    { 
        echo "DOESNT EXIST"; 
    }
    

    希望这会有所帮助。

    【讨论】:

    • 有没有,看看lafor的解决方案。
    • 是的。 Lafors 是一个更好的解决方案。我只是说我是怎么做到的。虽然在我的情况下,我也希望它返回它有多少条目,如果它存在的话。
    【解决方案3】:

    在 2022 / php 5.1.0 及更高版本中,使用

    $objJsn    = json_decode    ( $strJsnFromFile     );
    $bolExists = property_exists( $objJsn, 'NodeName' );
    

    来自https://www.php.net/manual/en/function.property-exists.php php 7.4.9 数组相关的答案是错误的

    【讨论】:

      猜你喜欢
      • 2012-05-22
      • 2012-10-17
      • 2021-07-13
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 2014-01-15
      相关资源
      最近更新 更多