从PHP到Javascript的JSON用单个qoutes进行解析

时间:2017-02-21 02:21:03

标签: javascript php jquery parsing

我有来自PHP的JSON,我将addslashes();添加到

["01","\"Mia\'s\""]

当我将它传递给Javascript并尝试解析它时出现此错误,我找不到解析它的方法。

["01","\"Mia\
  

Uncaught SyntaxError:JSON位置的意外标记T.       在JSON.parse()       在convertJSONToArray(add_something:2830)

这是我的转换

// Converting json to array
        function convertJSONToArray(jsonValue){

          var arr = [];
           var parsed = JSON.parse(jsonValue);
           for(var x in parsed){
             arr.push(parsed[x]);
           }
          return arr;
        }

更新

我修好了。 将单引号替换为unicode。

1 个答案:

答案 0 :(得分:0)

我认为您正在使用普通的echo语句和字符串构建JSON。也许是这样的:

<?php

$data = array("01","Mia's");
$escaped = array();
foreach ($data as $value) {
  $escaped[] = '"' . addslashes($value) . '"';
}
echo '[' . implode(',', $escaped) . ']';

?>

这实际上是容易出错且不灵活。

您可以使用json_encode生成JSON。它将正确地为您处理转义和编码。无需自己addslashes

<?php

echo json_encode(array("01","Mia's", 'my "Hello"'));

?>

将返回:

["01","Mia's","my \"Hello\""]