编码来创建字符串

我必须将一个PHP数组json_encode编码为一个JavaScript数组。 不幸的是,我使用的jQuery库如果包含ints而不是字符串,将无法正确处理该数组。

大多数情况下,这将产生只包含字符串的正确数组:

json_encode($data)

即使$数据只包含数字,我通常会得到这个

["3","7","8"]

有时候,我得到这样的结果(注意零):

["9691","1792","26","1","4","15",0,"1"]

或这个

[16171,15470,10390,7585]

(请注意,这显然是不同的数据来说明发生了什么)。 我需要强制json_encode将数组值视为字符串。 我知道有相反的选项JSON_NUMERIC_CHECK强制数字。 这个等价物是否真的不存在? 似乎我唯一的选择是在JavaScript端再次处理数组,这尽管有可能会破坏我的对象封装。


如果与JSON_NUMERIC_CHECK相反,它会很好,但看起来不像。

在编码之前,为什么不能确保数据在你的php中是正确的类型?

这可能意味着你必须手动将其转换为字符串...


在数组中定义它们作为字符串,或者如果它来自其他地方:

$data = json_encode(array_map('strval', $data));

如果在函数调用中指定了一个标志, json_decode()可以将大整数转换为字符串:

$array = json_decode($json, true, 512, JSON_BIGINT_AS_STRING)
链接地址: http://www.djcxy.com/p/47795.html

上一篇: encode to create strings

下一篇: Python CJSON encoding custom objects