利用 Newtonsoft 处理Json 特殊字符
2010-12-11 09:31
423 查看
通常Ajax使用Json从服务端载入数据。
在服务端 可以利用拼结 Json数据字符串返回客户端。 数据不存在特殊字符 如:' " \ 等特殊字符可以正常呈现。
如果当所获取的数据包含这些特殊字符时,Json数据在客户端解析就会出现问题。
解决办法,可以用第三方 Newtonsoft.dll 下载,生成Json数据。
示例
后台 ashx 文件代码(vb.net 实现,C#同理,语法不同):
Public Class QuickSearchMerchant
Implements System.Web.IHttpHandler, IReadOnlySessionState
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim SearchType As String = context.Request.Form("SearchType")
Dim SearchValue As String = context.Request.Form("SearchValue")
Dim CurrentIndex As String = context.Request.Form("CurrentIndex")
context.Response.ContentType = "application/json"
context.Response.Charset = "utf-8"
Dim obj As New QSMerchant()
obj.MerchantID = "JamesTest"
obj.AltMerchantID = "Alt James"
obj.ParentMerchantID = "Parent James"
obj.CreditStatus = "Credit Status"
obj.CustomerType = "customer type"
obj.BlockLastTrans = "2010 11 11"
obj.AgentID = "agnet ID"
obj.AltAgentID = "alt agnet ID"
obj.Phone = "Phone"
obj.Company = "Company"
obj.Fax = "Fax"
obj.Email = "Email"
obj.Memo = "Memo"
Dim json As String = JsonConvert.SerializeObject(obj)
context.Response.Write(json)
context.Response.Flush()
context.Response.End()
End Sub
End Class
前端 Javascript 代码:
url:为请求的地址,此处为ashx的地址。
prefix:为页面InputID前缀部分,inputid=prefix+后端对应的对象成员名称,达到自动赋值的目的。
param:为传递到ashx处理程序的值,在此你可以存放你的一些参数
如:ashx 里的 Dim SearchType As String = context.Request.Form("SearchType")。
格式: Param = {SearchType: Condition.Type,SearchValue: Condition.Value ,CurrentIndex : 0 }; ,与 ashx里获取的一一对应。
function LoadJsonData(url,prefix,param)
{
$.ajax({
url: url ,
type: 'post',
async:false,
data: param,
dataType: 'json',
beforeSend: function() {
},
cache: false,
complete: function() {
},
error: function(data) {
},
success: function(json) {
$.each(json, function(key, value) {
if($("#" + prefix +key).attr("type")=="text" || $("#" + prefix +key).attr("type")=="hidden"){
$("#" + prefix +key).val(value);
}
else{
$("#" + prefix +key).html(value);
}
});
}
});
}
在服务端 可以利用拼结 Json数据字符串返回客户端。 数据不存在特殊字符 如:' " \ 等特殊字符可以正常呈现。
如果当所获取的数据包含这些特殊字符时,Json数据在客户端解析就会出现问题。
解决办法,可以用第三方 Newtonsoft.dll 下载,生成Json数据。
示例
后台 ashx 文件代码(vb.net 实现,C#同理,语法不同):
Public Class QuickSearchMerchant
Implements System.Web.IHttpHandler, IReadOnlySessionState
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim SearchType As String = context.Request.Form("SearchType")
Dim SearchValue As String = context.Request.Form("SearchValue")
Dim CurrentIndex As String = context.Request.Form("CurrentIndex")
context.Response.ContentType = "application/json"
context.Response.Charset = "utf-8"
Dim obj As New QSMerchant()
obj.MerchantID = "JamesTest"
obj.AltMerchantID = "Alt James"
obj.ParentMerchantID = "Parent James"
obj.CreditStatus = "Credit Status"
obj.CustomerType = "customer type"
obj.BlockLastTrans = "2010 11 11"
obj.AgentID = "agnet ID"
obj.AltAgentID = "alt agnet ID"
obj.Phone = "Phone"
obj.Company = "Company"
obj.Fax = "Fax"
obj.Email = "Email"
obj.Memo = "Memo"
Dim json As String = JsonConvert.SerializeObject(obj)
context.Response.Write(json)
context.Response.Flush()
context.Response.End()
End Sub
End Class
前端 Javascript 代码:
url:为请求的地址,此处为ashx的地址。
prefix:为页面InputID前缀部分,inputid=prefix+后端对应的对象成员名称,达到自动赋值的目的。
param:为传递到ashx处理程序的值,在此你可以存放你的一些参数
如:ashx 里的 Dim SearchType As String = context.Request.Form("SearchType")。
格式: Param = {SearchType: Condition.Type,SearchValue: Condition.Value ,CurrentIndex : 0 }; ,与 ashx里获取的一一对应。
function LoadJsonData(url,prefix,param)
{
$.ajax({
url: url ,
type: 'post',
async:false,
data: param,
dataType: 'json',
beforeSend: function() {
},
cache: false,
complete: function() {
},
error: function(data) {
},
success: function(json) {
$.each(json, function(key, value) {
if($("#" + prefix +key).attr("type")=="text" || $("#" + prefix +key).attr("type")=="hidden"){
$("#" + prefix +key).val(value);
}
else{
$("#" + prefix +key).html(value);
}
});
}
});
}
相关文章推荐
- JSON中对特殊字符的处理
- json 往前台传值特殊字符处理
- java 中JSON数据特殊字符的处理
- 如何处理JSON中的特殊字符
- C#中 如何处理 JSON中的特殊字符
- 用JSON备份还原短信时特殊字符的处理
- JSON特殊字符的处理
- JSON特殊字符的处理
- json字符串中的特殊字符处理
- json - 内容中需处理的特殊字符(转)
- 如何处理JSON中的特殊字符
- jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
- C#: json字符串中的特殊字符处理
- json字符中的特殊字符处理
- Json数据中的特殊字符处理
- 如何处理JSON中的特殊字符
- json 特殊字符 javascript 特殊字符处理(转载)
- Newtonsoft.Json利用IsoDateTimeConverter处理日期类型
- JSON特殊字符处理
- JSON 特殊字符处理