使用 JavaScriptSerializer 类转义 Json?
我使用 JavaScriptSerializer 类来序列化和反序列化为 Json。
我知道
有一个json.net
库。
但我的问题是:
我还可以使用 JavaScriptSerializer 类来转义我的 json 字符串吗?
或者我应该自己做?如果是这样,我应该通过 encodeURIComponent
来实现吗?
Im using the JavaScriptSerializer
Class to serilize and Deserilize in/to Json.
I know
there is a json.net
library out there.
But My question is :
Can I also use JavaScriptSerializer
class to escape my json string ?
or should I do it myself ? and if so should I do it by encodeURIComponent
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这是安全编码字符串的适当方法。只需在字符串上调用序列化即可。
更清楚地说,如果您查看实际的 JavaScriptSerializer 实现(我正在使用 dotpeek),您可以看到它实际上调用了这个函数:
所以我想另一个答案是您可以只使用 HttpUtility.JavaScriptStringEncode code>,尽管它不会在其周围添加双引号。
Yes, it's an appropriate way to safely encode a string. Just call serialize on your string.
To be more clear, if you look into the actual JavaScriptSerializer implementation (I'm using dotpeek), you can see that it actually calls this function:
So I guess another answer is that you can just use
HttpUtility.JavaScriptStringEncode
, although it won't add the double quotes around it.您问题的答案取决于您如何使用 json.
如果您通过 ajax 调用发送,那么您可能不需要对字符串执行任何操作。
如果您将生成的 json 从代码隐藏嵌入到 javascript 变量中,那么您只需要最少的转义即可确保 js 的格式正确。这就是我们使用的:(
抱歉,这是 VB 代码,可能需要对 C# 进行一些调整)
我认为这可能是合适的 C# 代码:
The answer to your question depends on how you are using the json.
If you are sending out via an ajax call, then you probably don't need to do anything with the string.
If you are embedding the resulting json in a javascript variable from codebehind, then you only need minimal escaping to ensure the js is correctly formatted. This is what we use for this:
(Sorry, that is VB code, may need some adjustment for C#)
I think this may be the appropriate C# code: