我一直在寻找解决我所期望的不是任务的模糊,但我还没有找到一个有效的解决方案。也许我对我所经历的事情以及为什么会有根本的错误,但我当然希望借鉴一下并深入了解为什么。
任务
打印文字字符串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);
}
答案 0 :(得分:3)
可能看起来很黑,但如果你想保持简短,那么:
var myValue = '\\u0027\\u0027\\u0027\\u0027';
console.log( JSON.parse( '"' + myValue + '"' ) );
JSON.parse需要双引号,这是其中唯一不合适的部分。