编码来创建字符串
我必须将一个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