删除显式JavaScript反斜杠转义

时间:2014-06-25 13:11:28

标签: javascript asp.net-web-api escaping

我一直在寻找解决我所期望的不是任务的模糊,但我还没有找到一个有效的解决方案。也许我对我所经历的事情以及为什么会有根本的错误,但我当然希望借鉴一下并深入了解为什么

任务

打印文字字符串console.log('\\u0027\\u0027\\u0027\\u0027');

''''

我取而代之的是'\u0027\u0027\u0027\u0027'

我看到这是由显式转义引起的,但是如何转换或删除双反斜杠以获得所需的结果呢?

范围详情

我从.NET web api后端返回一个集合,并使用System.Web.HttpUtility.JavaScriptStringEncode对集合进行编码,这会在我的JavaScript中为任何找到的特殊字符返回显式的双反斜杠值。

修改

后端模拟示例

public ActionResult GetDictionary()
{
    var collection =
        this.service.Get()
            .OrderBy(x => x.Name)
            .Select(x =>
                    new Item()
                        {
                            Name = x.Name,
                            PreviewData = System.Web.HttpUtility.JavaScriptStringEncode(x.PreviewData),
                            Description = System.Web.HttpUtility.JavaScriptStringEncode(x.Description)
                        })
            .ToList();

    return this.Json(collection, JsonRequestBehavior.AllowGet);
}

1 个答案:

答案 0 :(得分:3)

可能看起来很黑,但如果你想保持简短,那么:

var myValue = '\\u0027\\u0027\\u0027\\u0027';
console.log( JSON.parse( '"' + myValue + '"' ) );

JSON.parse需要双引号,这是其中唯一不合适的部分。