2017-02-21 13 views
1

私は私がJSON PHPから単一qoutesとJavascriptの解析に

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

になりaddslashes();を追加PHPからJSONを持っていると私は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

は、私はそれを修正します。 シングルクォートをユニコードに置き換えます。

+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\""] 
関連する問題