我有一个表格字段,其类型为tinyint
。因此,mysql中的值可以存储为1
的{{1}}和true
的{{1}}。
我使用php的mysqli模块来获取数据。 e.g。
0
现在我得到了该表的数据行。但是类型为false
的字段是整数而不是布尔值。
问题来自php的$result = $mysqli->query("SELECT * FROM table_x_y");
$row = $result->fetch_assoc()
。我想创建一个JSON对象。但是布尔字段仍然是整数(在tinyint
中),并且编码函数将它们视为整数而不是布尔值。
json对象的结果看起来像
json_encode
但我应该看起来像
$row
信息
[
{
"foo": 1,
"bar": 2
},
{
"foo": 0,
"bar": 1
}
]
数据类型为[
{
"foo": true,
"bar": 2
},
{
"foo": false,
"bar": 1
}
]
。
foo
数据类型为tinyint
答案 0 :(得分:1)
您需要在创建动态数组时明确地将$row['foo']
强制转换为布尔值,如下所示:
$array = array();
$result = $mysqli->query("SELECT * FROM table_x_y");
while($row = $result->fetch_assoc()){
$array[] = array('foo' => (bool)$row['foo'], 'bar' => $row['bar']);
}
echo json_encode($array);