画像へのファイル パスを含むオブジェクトを含む JSON ファイルがあります。jQueryを使用して画像タグのsrc属性を置き換えようとしていますが、何をしても、ソースを変更しようとするまでに、ファイルパスには引用符があり、パスの周りにエンコーディングが残ってしまい、失敗します.
私はもう試した:
- デコードURIコンポーネント
- 正規表現
どちらも機能していませんが、私のエラーのために機能しなかったことを喜んで受け入れます.
私が今持っているコードは次のとおりです。
getPics : function(){
$.ajax({
type : 'GET',
url : this.BASE_URL +'js/image1.js',
dataType : "json",
success: function(data){
var pic = data.images.image[0].image_one;
console.log(pic);
setTimeout(function(){
var image = JSON.stringify(pic);
image = image.replace(/\"([^(\")"]+)\":/g,"$1:");
console.log(image);
$('#pic1 img').attr("src", image);
}, 5000);
}
});
}
問題の部分は次の部分です。
setTimeout(function(){
var image = JSON.stringify(pic);
image = image.replace(/\"([^(\")"]+)\":/g,"$1:");
console.log(image);
$('#pic1 img').attr("src", image);
}, 5000);
2 つの console.log に注意してください。「pic」の最初のログには、クリーンな (iew/out 引用符) ファイル パスが出力されます。奇妙なことに、'image' の console.log は同じファイル パスを出力しますが、今度は悪意のある二重引用符が付いており、最終的に失敗します。見られる正規表現は効果がないようです。
これが、私が作業している返された JSON です。
{
"stat": "ok",
"images": {
"image": [
{
"image_one": "images/image_1.jpg"
}
]
}
}
助けてくれてありがとう。