如何检查json编码的id是不是null?

时间:2014-02-26 14:13:56

标签: php json mongodb

我在我的服务器中接收了一个json编码数据,它在php和mongo db中,我将用户ID作为唯一ID。当我得到详细信息如何验证json数据时,用户id不为null,现在如果它为空它将插入到db中,我该如何解决问题?有什么方法可以检查用户id是不是null而json_decode?

{"userid":"","firstName":"John","lastName":"doe"}

此处用户标识为空。如何在服务器功能中收到此ID时验证?

3 个答案:

答案 0 :(得分:2)

使用json_decode()解码JSON字符串(第二个参数设置为TRUE以获取关联数组而不是对象),从数组中访问用户ID并使用empty()检查它是否为空:

$str = '{"userid":"","firstName":"John","lastName":"doe"}';
$jsonArr = json_decode($str, TRUE);
$userId = $jsonArr['userid'];

// if user ID value not empty
if (!empty($userId)) {
    // code
}

您也可以使用is_null(),但它不会返回TRUE表示您想要丢弃的空字符串("")。 empty()将同时捕获NULL和空字符串,因此它更适合此。

答案 1 :(得分:0)

通过解码和检查strlen?

$data = json_decode($string);
$idNotNull = strlen($data->userid) !== 0;

没有解码,你可以使用REGEX

$idNotNull = preg_match('/^\{.*"userid":"(.+)".*\}$/U',$string);

答案 2 :(得分:0)

如何将数组解码为PHP数组并检查是否设置了userid键?

$decoded_array = json_decode($json_text);
if (array_key_exists("userid", $decoded_array) {
  // exists
} else{
  // doesn't
}