有人能帮上忙吗?
mysql_fetch_object以字符串类型返回所有属性。我需要将对象转换为JSON,但保留数值和布尔值。
对于所有查询,解析得到的JSON都非常慢。这是我的查询var_dump的结果。
$obj = mysql_fetch_object($result)
var_dump($obj);
...
object(stdClass)[10]
public 'idUsuario' => string '1' (length=1)
public 'Email' => string 'user@theemail.com.ar' (length=23)
public 'Password' => string '1234' (length=4)
public 'Nombre' => string 'Sebastián' (length=10)
public 'Apellido' => string 'Black' (length=7)
public 'Habilitado' => string '1' (length=1)
...'Habilitado‘属性是DataBase中的布尔值(我已经尝试过BIT数据类型,但结果相同)。
然后是使用json_encode的JSON:
{"DTOList":
{"idUsuario":"1",
"Email":"user@theemail.com.ar",
"Password":"1234","Nombre":"Sebasti\u00e1n","Apellido":"Black","Habilitado":"1"...发布于 2013-05-18 01:44:26
这是正确的。除了按原样传递的NULL之外,MySQL以字符串的形式返回所有内容。
另一件要注意的事情是,BOOLEAN只是TINYINT(1)的别名,其中0是FALSE,所有其他值都是TRUE。
发布于 2013-05-18 02:32:44
我也遇到过类似的问题,尽管我在PDO中使用的是FETCH_ASSOC而不是FETCH_OBJ。您可以“转换”(提示)这些字段,它们将按照您期望的那样在JSON中显示出来。在您的示例中,这可能会起作用(将其放在json_encode之前):
$obj->idUsuario = (int) $obj->idUsuario;
$obj->Habilitado = (bool) $obj->Habilitado;https://stackoverflow.com/questions/16614993
复制相似问题