如何知道Json字符串中是否存在密钥

Nis*_*nth 32 php codeigniter

可能重复:
如何检查数组元素是否存在?

道歉,如果我错了,我是PHP新手,有没有办法在PHP Json解码后使用json_decode函数解析字符串是否存在.

$json = {"user_id":"51","password":"abc123fo"};
Run Code Online (Sandbox Code Playgroud)

简要:

$json = {"password":"abc123fo"};
$mydata = json_decode($json,true);
user_id = $mydata['user_id'];
Run Code Online (Sandbox Code Playgroud)

如果JSON字符串不是由USER_ID的,它会引发像一个异常Undefined index user_id,那么有没有什么办法来检查JSON字符串是否存在的关键,请帮助我,我用PHP 5.3 and Codeigniter 2.1 MVC在此先感谢

sci*_*uff 59

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

if( isset( $mydata['user_id'] ) ){
   // do something
}
Run Code Online (Sandbox Code Playgroud)

即之间的差array_key_exists,并isset是与

$json = {"user_id": null}
Run Code Online (Sandbox Code Playgroud)

array_key_exists将返回trueisset将返回false

  • 它是“array_key_exists”而不是“array_Key_exists”(小写“k”)...但错误表明您的第二个参数不是数组而是 stdClass,即您很可能不会将“true”作为第二个参数传递给“json_decode” ` 函数 (3认同)

Jor*_*dan 29

你可以尝试array_key_exists.

它返回一个布尔值,因此你可以搜索它:

if(array_key_exists('user_id', $mydata)) {
    //key exists, do stuff
}
Run Code Online (Sandbox Code Playgroud)