【发布时间】:2013-08-03 11:51:41
【问题描述】:
我正在尝试使用 ajax 将 php 数组转换为 js,并在 PHP 中通过 JSON 编码并在 JS 中解码,但无法获得所需的结果。
我在回显编码字符串之前使用 var_dump,这是输出:
$boardArrayEncoded = json_encode($boardArray);
var_dump($boardArrayEncoded);
echo $boardArrayEncoded;
JSON_encode 之后的这个字符串是:
string '{"1x1":0,"1x2":0,"1x3":0,"1x4":0,"1x5":0,"1x6":0,"2x1":0,"2x2":0,"2x3":0,"2x4":0,"2x5":0,"2x6":0,"3x1":0,"3x2":0,"3x3":0,"3x4":0,"3x5":0,"3x6":0,"4x1":0,"4x2":0,"4x3":0,"4x4":0,"4x5":0,"4x6":0,"5x1":0,"5x2":0,"5x3":0,"5x4":0,"5x5":0,"5x6":0,"6x1":0,"6x2":0,"6x3":0,"6x4":0,"6x5":0,"6x6":0}'
在javascript中我尝试解析它:
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("logDiv1").innerHTML = xmlhttp.responseText;
array = JSON.parse(xmlhttp.responseText);
}
这是 xmlhttp.responseText:{"1x1":0,"1x2":0,"1x3":0,"1x4":0,"1x5":0,"1x6":0,"2x1":0,"2x2":0,"2x3":0,"2x4":0,"2x5":0,"2x6":0,"3x1":0,"3x2":0,"3x3":0,"3x4":0,"3x5":0,"3x6":0,"4x1":0,"4x2":0,"4x3":0,"4x4":0,"4x5":0,"4x6":0,"5x1":0,"5x2":0,"5x3":0,"5x4":0,"5x5":0,"5x6":0,"6x1":0,"6x2":0,"6x3":0,"6x4":0,"6x5":0,"6x6":0}
在萤火虫上我得到语法错误:
SyntaxError: JSON.parse: unexpected character
[Break On This Error]
array1 = JSON.parse(xmlhttp.responseText);
我做错了什么?我需要在JS中使用这个数组,如何正确编码?
提前致谢
【问题讨论】:
-
根据jsonlint.org,您发布的JSON是有效的。你确定这就是你得到的吗?
-
是的,这是 var_dump 和 innerHTML 打印的所有输出。
-
好吧,如果
string是响应的一部分(如果您的代码中确实有var_dump),那就是问题所在。 -
我试过 JSON.parse(上面的响应文本)它没有给我任何错误
标签: php javascript arrays json