如何知道Json字符串中是不是存在密钥[重复]

Posted

技术标签:

【中文标题】如何知道Json字符串中是不是存在密钥[重复]【英文标题】:how to know whether key exists in Json string [duplicate]如何知道Json字符串中是否存在密钥[重复] 【发布时间】:2012-04-27 21:51:42 【问题描述】:

可能重复:How to check if an array element exists?

抱歉,如果我错了,我是 php 新手,有没有办法在 PHP 中使用 json_decode 函数解码后找出 Json 字符串中是否存在密钥。

$json = "user_id":"51","password":"abc123fo";

简介:

$json = "password":"abc123fo";
$mydata = json_decode($json,true);
user_id = $mydata['user_id'];

如果json字符串不包含user_id,它会抛出Undefined index user_id这样的异常,那么有什么方法可以检查Json字符串中是否存在key,请帮助我,我正在使用PHP 5.3 and Codeigniter 2.1 MVC提前谢谢

【问题讨论】:

阅读文档可能会有所帮助:php.net/manual/en/function.array-key-exists.php 【参考方案1】:

如果您还想检查该值是否不是null,您可以使用isset

if( isset( $mydata['user_id'] ) )
   // do something

array_key_existsisset 的区别在于与

$json = "user_id": null

array_key_exists 将返回 trueisset 将返回 false

【讨论】:

【参考方案2】:

你可以试试array_key_exists。

它返回一个布尔值,所以你可以像这样搜索它:

if(array_key_exists('user_id', $mydata)) 
    //key exists, do stuff

【讨论】:

以上是关于如何知道Json字符串中是不是存在密钥[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 PL/pgSQL 检查密钥是不是存在于 JSON 中?

如何检查文件(由完整路径给出)是不是存在?节点js [重复]

检查密钥是不是存在于 JSON 中,然后插入到页面中

检查 JSON 密钥是不是存在

JS判断一个数组中是不是有重复值的三种方法

如何正确检查对象是不是被字符串化? JS [重复]