-1

画像へのファイル パスを含むオブジェクトを含む 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"
        }
    ]
}

}

助けてくれてありがとう。

4

1 に答える 1

4

JSON.stringifyなしで一度試してみてください。必要ないと思います。

于 2013-03-21T10:42:47.747 に答える