2017-02-21 2 views
1

У меня есть JSON из PHP я добавляемые addslashes(); которые приводят кJSON из PHP в Javascript Разбор одиночного qoutes

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

и когда я передал его в Javascript и попытаться разобрать его, я получил эту ошибку, и я могу Не найдешь способ разобрать его.

["01","\"Mia\ 

Uncaught SyntaxError: Unexpected token T in JSON at position at JSON.parse() at 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; 
     } 

UPDATE

Я установил ее. , заменив одиночную кавычку на unicode.

+5

Вам не нужно добавлять слэш, прежде чем отправить в JavaScript/JQuery. – Raptor

+1

Для чего нужен цикл? Разве 'parsed' уже не содержит желаемого массива? Кроме того, что jQuery? Во всяком случае, не избегайте апострофа в JSON. – nnnnnn

+0

Вы сделали это JSON String вручную или используете 'json_encode ($ array)' – RiggsFolly

ответ

0

Я думаю, что вы строите JSON с простым оператором echo и строкой. Возможно, что-то вроде этого:

<?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\""] 
Смежные вопросы