PHP json_encode返回unescaped'

时间:2014-07-29 14:23:34

标签: javascript php json

我在js中解析json编码对象时遇到了问题。 JSON.parse(word_array);,错误为Uncaught SyntaxError: Unexpected identifier

我的调查表明,由于PHP中的错误形成,对象word_array不存在:它内部有一个未转义的单引号',因此js将其视为字符串的结尾。< / p>

我下一步编码:

echo "<script>var word_array = '";
echo  json_encode($word_set);
echo "';\n";

据我所知,json_encode应该逃避所有不受欢迎的特征,如',但事实并非如此。 可能是什么问题?

我的php版本:Version PHP: 5.3.13 $word_set是一组assoc。阵列:

$word_set = array();
while($stmt->fetch())
{
  $word_set_tmp[] = array(
    'word' => $word, 
    'definition' => $def
  );
  array_push ($word_set,$word_set_tmp);
} 

1 个答案:

答案 0 :(得分:5)

问题是你用单引号围绕数组声明,删除它们并且一切都很好:

echo "<script>var word_array = " . json_encode($word_set) . ";";

作为旁注,我发现当我必须将PHP与其他任何东西混合(html,js)然后最好退出php模式并编写html / js,回显所需的php变量,而不是回显出html / js :

<?php 
    $word_set = $db->somfunc();
?>
<script>
    var word_array="<?php echo json_encode($word_set);?>";
    alert(word_array[1].definition);
</script>