JavaScriptSerializer:任何发送未转义数据的方法
本文关键字:数据 方法 转义 任何发 JavaScriptSerializer | 更新日期: 2023-09-27 18:36:01
我写了一个.ToJson()
扩展方法,如下所示:
public static string ToJson(this object obj)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(obj);
}
这允许我执行类似myObject.ToJson()
的操作,以获取通过.asmx
Web 服务发送回我的应用程序的 JSON 字符串。这一切都很好用。
需要将大量异步数据传输到该页面,并且我开始达到超过 100k 的数据有效负载。在查看 JSON 时,我注意到它对我发回的任何内容进行编码,这添加了很多额外的字符。由于此应用程序是针对极少数受众的管理工具,因此我并不真正担心这种安全性,但是我似乎无法在此处找到如何控制编码。
这是我收到的内容(示例):
{"d":"[{'"OrderId'":1308,'"Approved'":true,
'"Status'":'"''u003cimg class='''"statusicon'''" src='''"/images/ ...
当我应该得到类似的东西时:
{"d": [{"OrderId":1308,"Approved":true,"Status":"<img class='"statusicon'"
src='"/images/ ...
有没有办法控制 JSON 数据是否被转义?
需要注意的一件事是,我被迫在.ajaxSetup()
中使用它来解析返回的数据:
dataFilter: function (data) {
if (data) {
var msg;
if (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function') {
msg = JSON.parse(data);
} else {
msg = eval('(' + data + ')');
}
if (msg.hasOwnProperty('d')) {
return msg.d;
} else {
return msg;
}
}
}
我遇到了这个问题。json 库未返回转义文本。我相信javascript本身正在将其解释为转义。
<script type="text/javascript">
$(document).ready(function () {
var columnNumber = 1;
var databaseTypes = <%= Html.Raw(ViewBag.DatabaseTypes) %>;
看看Viewbag区域。这是如何在 asp.net mvc 视图中注入文本的方法。