JQuery,JSON-JSON数据中有引号的问题

JQuery,JSON-JSON数据中有引号的问题,jquery,json,character-encoding,expressionengine,Jquery,Json,Character Encoding,Expressionengine,我试图读取包含引号的JSON数据,引号可以有效地转义字符串,并将随后的文本视为变量。我怎样才能避免这种情况发生?这是JSON提要(它内置于表达式引擎中,因此忽略大括号): ([ {exp:channel:entries channel=“blog”limit=“10”dynamic\u start=“on”disable=“member\u data”} { “标题”:“{exp:url\u encode}{title}{/exp:url\u encode}”, “正文”:“{blog_one_

我试图读取包含引号的JSON数据,引号可以有效地转义字符串,并将随后的文本视为变量。我怎样才能避免这种情况发生?这是JSON提要(它内置于表达式引擎中,因此忽略大括号):

([
{exp:channel:entries channel=“blog”limit=“10”dynamic\u start=“on”disable=“member\u data”}
{
“标题”:“{exp:url\u encode}{title}{/exp:url\u encode}”,
“正文”:“{blog_one_liner}”,
“链接”:“{blog\u image\u 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>');

        };
    }
函数loadBlog(){
$.getJSON(“http://superfad.com/work/work_json?callback=?&test=test“,已加载);
}
已加载函数(数据){
for(数据中的数据索引){
var blogtile=decodeURI(数据[dataIndex].title);
var blogContent=data[dataIndex].body;
var blogLink=data[dataIndex].link;
var blogImg=data[dataIndex].img;
$(“#blog_results”).append(“
  • ”+blogtTitle+”-“+blogContent+”
  • ”); }; }

    您可以看到,对于标题,我尝试了在表达式引擎中编码(工作正常)和在javascript中解码(不工作)。我看到JSON具有某种linkify功能,但如果不切换到JQuery的AJAX功能,我就不知道如何实现它。我想做的是完全避免表达式引擎编码,尽可能使用Javascript(必要时使用PHP)。

    尝试使用
    decodeURIComponent()
    而不是
    decodeURI()


    decodeURI代表完整的URL,而decodeURIComponent适用于任何字符串。

    尝试使用
    decodeURIComponent()
    而不是
    decodeURI()

    decodeURI代表完整的URL,而decodeURIComponent适用于任何字符串。

    您是否尝试过“unescape('encoded string')”?为了解决“+”问题,您可以

    // Create a regular expression to search all +s in the string
    var lsRegExp = /\+/g;
    // Return the decoded string
    return unescape(String(psEncodeString).replace(lsRegExp, " ")); 
    
    参考资料:

    您是否尝试过“unescape('encoded string')”?为了解决“+”问题,您可以

    // Create a regular expression to search all +s in the string
    var lsRegExp = /\+/g;
    // Return the decoded string
    return unescape(String(psEncodeString).replace(lsRegExp, " ")); 
    

    参考资料:

    Unescape有效,但表示空格的+符号(来自表达式引擎)仍然有效。Unescape有效,但表示空格的+符号(来自表达式引擎)仍然有效。问题与上述相同,但是的,decodeURIComponent有效,谢谢。问题与上述相同,但是的,decodeURIComponent有效,谢谢。