c#之如何解析属性值之一中带有双引号的 JSON 对象
如果我有一个 json 字符串,其属性值之一具有 double quote在其中,我无法解析它。
例如,如果我的对象是 { "Name" : "Six \" Pipe" }那么以下给了我一个错误 - Unexpected token P .
var str = '{ "Name" : "Six \" Pipe" }';
JSON.parse(str); //error
$.parseJSON(str); //error
字符串在 Razor View 中形成如下 -
var str = new JavaScriptSerializer().Serialize(obj);
然后在 JavaScript 中我正在做
var obj = JSON.parse('@(Html.Raw(str))');
如何解析这样的字符串?
请您参考如下方法:
你应该转义反斜杠,因为在 JS 中它只会将 \" 转换为 " 并且会使 JSON 不正确。 The blackslash is discarded by javascript .
所以正确的字符串是-
var str = '{ "Name" : "Six \\" Pipe" }';
JSON.parse(str); //works
编辑:
所以,如果你想在 JS 中创建一个文字反斜杠,你必须转义它。您可以在创建此字符串并对键的值进行双重转义时执行此操作。 解决这个问题的一种方法可能是 -
对字符串(键值)进行 html 编码,就像: " 而不是 \" 等。对于我来说,.Net 似乎很简单。我不确定,但 HttpServerUtility.HtmlEncode 可以提供帮助。
然后在 javascript 方面,您可以立即解析 - fiddle
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



