2016-12-09 20 views
0

PHPを使用してMySQLデータベースに格納されたJSONを取得し、PHP変数に格納してJQueryに渡します。JSONの引用符がエスケープされていてもjQueryエラーが発生する

{ 
    "links": [{ 
     "url": "http://domain1.com", 
     "title": "Title 1", 
     "description": "This is an example for my question on Stack Overflow" 
    }, { 
     "url": "http://domain2.com", 
     "title": "Title 2", 
     "description": "This is another example for my question on Stack Overflow" 
    }, { 
     "url": "http://domain3.com", 
     "title": "Title 3", 
     "description": "This is a third example for my question on Stack Overflow" 
    }] 
} 

しかし、JSONの内容は、引用符が含まれている場合、私が読んでエラーが出る「捕捉されないでSyntaxErrorを:JSON入力の予期しない終わり、」偶数を:JSONは次のようになりますとき

data = $.parseJSON('<?=$my_json;?>'); 
$.each(data.links, function(entryIndex, entry) { 
    //do some stuff here 
     }); 

すべてが正常に動作します引用符はエスケープされますが、次のようになります。

{ 
    "links": [{ 
     "url": "http://domain1.com", 
     "title": "Title 1", 
     "description": "This is an \"example\" for my question on Stack Overflow" 
    }, { 
     "url": "http://domain2.com", 
     "title": "Title 2", 
     "description": "This is another \"example\" for my question on Stack Overflow" 
    }, { 
     "url": "http://domain3.com", 
     "title": "Title 3", 
     "description": "This is a third \"example\" for my question on Stack Overflow" 
    }] 
} 

私は間違っていますか?

+2

表示されている内容は正常に動作するはずです。あなたはそれが '$ my_json'に含まれていると確信していますか? JSがそのインスタンスでもエラーをスローするので、出力に改行がないことを確認してください。 –

+1

あなたは 'data = <?= $ my_json;?>;と書くことができます。 ' – RiggsFolly

+0

レンダリングされたjavascriptコードを投稿できますか? – Jerodev

答えて

0
data = $.parseJSON('<?=$my_json;?>'); 

あなたはここにやっている事は、あなたが引用符の周りのJavaScriptオブジェクトをラップしようと$.parseJSON関数に文字列としてそれを渡しているです。

この関数は、文字列であるJSON文字列を解析するだけで、JSON構造体を作成し、その関数でJavaScriptオブジェクトに変換します。

$my_json変数には既にJavaScriptオブジェクトが含まれていますが、$.parseJSON関数を使用する必要はありません。次のようなJavaScript変数に割り当てることができます。

+0

ありがとう@ Perumal93 - それはそれを修正しました! – Dave

+0

ようこそ。 :) – Perumal

関連する問題