json_encode()如何无法将字符串自动转换为int [英] how can json_encode() not auto convert string to int

查看:65
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆