json_encode()如何无法将字符串自动转换为int [英] how can json_encode() not auto convert string to int
本文介绍了json_encode()如何无法将字符串自动转换为int的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我有这个数组,
Array
(
[0] => Array (
[task] => Sleeping
[duration] => 2
)
[1] => Array (
[task] => Eating
[duration] => 1
)
)
当我json_encode()时,它会返回
when i json_encode() it, it returns
[{"task":"Sleeping","duration":2},{"task":"Eating","duration":1}]
我需要成为现实
[{"task":"Sleeping","duration":"2"},{"task":"Eating","duration":"1"}]
有什么办法吗?
推荐答案
json_encode 根据其值输出值类型,在您的情况下,它们是整数.为了将所有值都用引号引起来,您需要
json_encode outputs the values as per their type, in your case they are integers. In order to have all values wrapped in quotes you need to cast each value as a string:
<?php
$data = array(0 => array('task' => 'Sleeping', 'duration' => 2), 1 => array('task' => 'Eating', 'duration' => 1));
array_walk_recursive($data, function (&$value) { $value = (string)$value; });
header('content-type: application/json; charset=utf-8');
echo json_encode($data);
递归字符串强制转换由 deceze
Recursive string casting courtesy of deceze
输出:
[{"task":"sleeping","duration":"2"},{"task":"Eating","duration":"1"}]
漂亮的打印输出:
[
{
"task": "Sleeping",
"duration": "2"
},
{
"task": "Eating",
"duration": "1"
}
]
这篇关于json_encode()如何无法将字符串自动转换为int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文