引用符を含むJSONデータを読み込もうとしています。実際にはその文字列をエスケープし、続くテキストを変数として扱います。これをどうしたらいいのでしょうか?ここではJSONフィード(それは表現エンジンに組み込まれているので、中括弧を無視する)である:JQuery、JSON - JSONデータの引用符での問題
<?php echo substr($_SERVER["REQUEST_URI"], strpos($_SERVER["REQUEST_URI"],"=")+1, strpos($_SERVER["REQUEST_URI"],"&")-strpos($_SERVER["REQUEST_URI"],"=")-1);?>([
{exp:channel:entries channel="blog" limit="10" dynamic_start="on" disable="member_data"}
{
"title": "{exp:url_encode}{title}{/exp:url_encode}",
"body": "{blog_one_liner}",
"link": "{blog_image_link}",
"img" : "{blog_image}"
},
{/exp:channel:entries}
]);
は、ここでjqueryの中で起こる解析です:
function loadBlog(){
$.getJSON("http://superfad.com/work/work_json?callback=?&test=test", blogLoaded);
}
function blogLoaded(data){
for (dataIndex in data) {
var blogTitle = decodeURI(data[dataIndex].title);
var blogContent = data[dataIndex].body;
var blogLink = data[dataIndex].link;
var blogImg = data[dataIndex].img;
$("#blog_results").append('<li class="blog"><a href="' + blogLink + '" target="_blank"><img class="blog_img" src="' + blogImg + '"/></a><span class="blogtitle">'+ blogTitle + '</span> - '+ blogContent + '</li>');
};
}
あなたは、私が試した見ることができます、のためにタイトル、表現エンジンでエンコードする(うまく動作する)、javascriptでデコードする(これは動作しません)。 JSONにはある種のlinkify関数があることがわかりましたが、JQueryのAJAX機能に切り替えることなく、JSONにどのように行うかを理解できませんでした。私がしたいのは、エクスプレッション・エンジン・エンコーディングを完全に避け、可能であればJavascriptですべてを行います(必要に応じてPHPもあります)。
Unescapeは動作しますが、式エンジンからのスペースを表す+記号は残ります。 – mheavers
私の答えが更新されました。 –
decodeURIComponent()で動作します... –