在JSON.stringify之后无法从图像路径中删除双引号

时间:2013-03-21 10:11:21

标签: javascript jquery-ui jquery

我有一个JSON文件,其中的对象包含图像的文件路径。我尝试使用jQuery替换图像标记的src attr,但无论我做什么,当我尝试更改源时,文件路径都有引号,最终会在路径周围留下编码,因此失败了。

我试过了:

  • decodeURIcomponent
  • 正则表达式

两者都没有奏效,但我非常愿意接受因错误而无法正常工作。

这是我现在拥有的代码:

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);

请注意两个console.logs:第一个用于' pic'打印一个干净的(iew / out quotes)文件路径。奇怪的是,控制台.log用于'图像'打印出相同的文件路径,但现在使用邪恶的双引号,这是失败的最终产品。看到的正则表达似乎没有效果。

以下是我正在使用的JSON:

{
"stat": "ok",
"images": {
    "image": [
        {
            "image_one": "images/image_1.jpg"
        }
    ]
}

}

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

在没有JSON.stringify的情况下尝试一次,我认为不需要。