【问题标题】:JSON From PHP to Javascript Parsing with single qoutesJSON 从 PHP 到 Javascript 用单引号解析
【发布时间】:2017-07-10 11:59:09
【问题描述】:

我有来自 PHP 的 JSON,我添加了 addslashes();,结果是

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

当我将它传递给 Javascript 并尝试解析它时,我得到了这个错误,我找不到解析它的方法。

["01","\"Mia\

未捕获的语法错误: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。

【问题讨论】:

  • 在发送到 JavaScript / jQuery 之前不需要添加斜杠。
  • 循环有什么用? parsed 不是已经包含所需的数组吗?另外,什么jQuery?无论如何,不​​要逃避 JSON 中的撇号。
  • 你是手动创建那个 JSON 字符串还是使用json_encode($array)
  • 您的原始 JSON 字符串是 ["01",""Mia's""],这是无效格式。
  • 其实如果我不添加addslashes(),如果我解析它就会出错。

标签: javascript php jquery parsing


【解决方案1】:

我认为您正在使用普通的 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\""]

【讨论】:

    猜你喜欢
    • 2015-10-16
    • 2014-04-28
    • 1970-01-01
    • 2014-02-13
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多