我在我的服务器中接收了一个json编码数据,它在php和mongo db中,我将用户ID作为唯一ID。当我得到详细信息如何验证json数据时,用户id不为null,现在如果它为空它将插入到db中,我该如何解决问题?有什么方法可以检查用户id是不是null而json_decode? p>
{"userid":"","firstName":"John","lastName":"doe"}
此处用户标识为空。如何在服务器功能中收到此ID时验证?
答案 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
}