我有来自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。
答案 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\""]