我有一个类似于:
的数组 [0] => stdClass Object
(
[name] => John
[id] => 1
[pass] => 0
)
数组由sql查询返回。现在我需要使用json_encode
,我希望id为整数并传递布尔值,但它们在json_encode
之后得到字符串类型。如何使用json_encode
中的正确数据类型进行操作?
答案 0 :(得分:2)
您可以遍历数组,使用pass
键将每个值转换为布尔值,将每个id
转换为如下所示的整数:
<?php
foreach ($results as $result) {
$result->id = (int) $result->id;
$result->pass = (bool) $result->pass;
}
答案 1 :(得分:2)
对于类型转换,您可以先遍历列表并转换相关属性:
foreach($data as $d)
{
$d->id = (int)$d->id;
$d->pass = (bool)$d->pass;
}
对于字符串转换问题; json_encode()
的第二个参数是options
(位掩码)。可用选项列在here中。您的案例中的相关选项是JSON_NUMERIC_CHECK
,这将阻止您的数字转换为生成的JSON中的字符串:
$json = json_encode($data, JSON_NUMERIC_CHECK);
答案 2 :(得分:0)
id
是整数。使pass
布尔值设置为boolean
(使用true
,false
)或将其转换为布尔值:
$obj->pass = (bool)$obj->pass;