decodeURI似乎无法正常工作?

时间:2015-01-05 19:01:02

标签: javascript json decode encode

我有一个字符串,类似

"Bob\u0027s Burgers"

decodeURI似乎没有将\u0027变成撇号,就像它应该的那样。到目前为止,它只是让它一个人。 encodeURI似乎做了各种各样的事情,但decodeURI似乎没有做到这一点。我在这里错过了什么吗?或者正如他们用不太雄辩的英语所说,“做什么?”

编辑:返回字符串的代码: courseNames保存所需的值

$.ajax({
        async: false,
        url: "/urlforaction",
        type: 'POST',
        data: {eventID: model.EventID},
        complete: function (data) {
            courseNames = data["responseText"].substring(1).substring(0, data["responseText"].length-2).split(',');
            //courseNames = courseNames.split(',');
            //courseNames = courseNames.replace('"', '');
            for (i = 0; i < courseNames.length; i++) {
                courseNameHTMLStream += courseNames[i] + '<br/>';
            }
        }
    });

Double Edit:responseText包含如下字符串:

“类别标题,Bob / us27s Burger 1,Bob / u0027s Burger 2”

1 个答案:

答案 0 :(得分:1)

只需通过JSON.parse传递即可解决问题,

var foo = '"Category Title,Bob\\u0027s Burger 1,Bob\\u0027s Burger 2"';

console.log(foo);
// outputs "Category Title,Bob\u0027s Burger 1,Bob\u0027s Burger 2"
console.log(JSON.parse(foo));
// outputs Category Title,Bob's Burger 1,Bob's Burger 2

http://jsfiddle.net/tj38pehv/1/

从那以后,你可以继续用逗号分隔它。


来自评论:

  

c#是re return Json(string.Join(",", <a complicated EF join statement>, JsonRequestBehavior.AllowGet);

那你为什么要加入那些价值呢?如果<a complicated EF join statement>导致类似于数组的结构,那么只需将 编码为JSON,而不是使用逗号分隔的字符串,就应该为您提供数组你的JavaScript中的单个值...