我在php中有一个看起来像这样的多维数组
[[4,1,4,2,131,1],[4,2,4,5,2,2,2],[2,2,7,0,3,3,3],[5,0,3,1,0,0,0],[0,0,5,0,0,0,0]]
当我使用php的json_encode对其进行编码,并将其作为ajax响应的一部分发送时,它会转换为字符串
"[[4,1,4,2,131,1],[4,2,4,5,2,2,2],[2,2,7,0,3,3,3],[5,0,3,1,0,0,0],[0,0,5,0,0,0,0]]"
..而不是数据结构本身。
json_encode正在接收一个如下所示的数组:
array(
'arg' => 'data',
'arg2' => array(
'multi' => [[4,1,4,2,131,1],[4,2,4,5,2,2,2],[2,2,7,0,3,3,3],[5,0,3,1,0,0,0],[0,0,5,0,0,0,0]]
)
)
这是为什么?以及如何转换此数据属性需要做什么?
编辑:添加了数据结构的json_encode()结果:
array(4) {
["type"]=>
string(11) "1"
["msg"]=>
string(0) ""
["data"]=>
array(3) {
["multi"]=>
string(81) "[[3,1,4,2,1,1,1],[4,2,4,5,2,2,2],[2,2,7,0,3,3,3],[5,0,3,0,0,0,0],[0,0,5,0,0,0,0]]"
}
}
谢谢你们!
答案 0 :(得分:1)
问题是因为特定结构在json_encode上运行了两次。下面是通过json_encode两次传递该数组的json结果,只有一次。通过json_encode将数组传递两次将使该数组变为字符串。
两次
{"type":"1","msg":"","data":{"multi":"[[3,1,4,2,1,1,1],[4,2,4,5,2,2,2],[2,2,7,0,3,3,3],[5,0,3,0,0,0,0],[0,0,5,0,0,0,0]]"}
单次
{"type":"1","msg":"","data":{"multi":[[3,1,4,2,1,1,1],[4,2,4,5,2,2,2],[2,2,7,0,3,3,3],[5,0,3,0,0,0,0],[0,0,5,0,0,0,0]]}