Json
发布时间:2022-04-22 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Net 3.5 用DataContractJsonSerializer实现Json序列和反序列例子,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
近来在研究jQuery,用$.ajax在与后台交换数据时用到Json格式,后台与前台序列化和反序列化方法研究了很久才成功,发文共享.
前台调用的JS文件需要用到jQuery-1.2.6.js和json2.js(http://www.json.org/json2.js),后台引用空间System.Runtime.serialization和System.Runtime.serialization.Json
Json序列化和反序列化方法
///
<sumMary>
Json序列化,用于发送到客户端
</sumMary>
public
static
String
ToJsJson(
this
object
item)
{
DataContractJsonserializerserializer
=
new
DataContractJsonserializer(item.GetType());
using
(MemoryStreAMMs
@H_448_30
@memoryStream())
{ serializer.WriteOb
ject(ms,item
); StringBuildersb
StringBuilder();
sb.Append(Encoding.UTF8.GetString(ms.ToArray()));
return
sb.ToString();
}
}
Json反序列化,用于接收客户端Json后生成对应的对象
TFromJsonTo
<
T
>
(
jsonString)
{
DataContractJsonserializerser
DataContractJsonserializer(
typeof
(T));
MemoryStreAMMs
@H_448_30
@memoryStream(Encoding.UTF8.GetBytes(json
String)
); TjsonOb
ject
(T)ser.ReadObject(ms);
ms.Close();
jsonObject;
}
实体类
[DataContract]
class
TestObj
{
[DataMember]
@H_448_30
@make
{
get
;
set
;}
[DataMember]
@H_448_30
@model
{
int
year{
color{
;}
}
--------------------------------------------javascript获取Json---------------------------------
javascript调用测试代码
$(
'
#getJson
).click(
function
(){
$.ajax({
url:
"
getJsonHandler.ashx
,
type:
GET
{},
dataType:
json
1000
(XMLhttprequest,textStatus,errorThrown){alert(textStatus)},
success:
(result){
alert(result.makE);
alert(result.model);
alert(result.year);
alert(result.color);
}
});
});
C#后台生成代码
getJsonHandler:IhttpHandler
{
void
Processrequest(httpContextcontext)
{
TestObjobj
TestObj();
obj.make
"
@H_171_39
@makeisValue
;
obj.model
@H_448_30
@modelisValue
;
obj.year
999
;
obj.color
ColorisValue
;
context.Response.Write(obj.ToJsJson());
}
bool
IsReusable
{
{
false
;
}
}
}
//
返回值为{"color":"ColorisValue","make":"MakeisValue","model":"ModelisValue","year":999}
---------------------------------C#由Json生成对象---------------------------------------
javascript调用测试代码
#postJson
(){
var
@H_448_30
@m_obj
{make:
Dodge
CoronetR/T
1968
yellow
};
jsonStr
JSON.Stringify(m_obj);
用Json2.js生成Json字符串
$.ajax({
url:
postJsonHandler.ashx
POST
{postjson:jsonStr},0);">(result){
alert(result.success);
}
});
});
C#后台生成代码
postJsonHandler:IhttpHandler
{
Processrequest(httpContextcontext)
{
context.request[
postjson
];
TestObjobj
jsonStr.FromJsonTo
TestObj
();
if
.IsNullOrEmpty(obj.makE)
||
.IsNullOrEmpty(obj.model)
.IsNullOrEmpty(obj.color)
obj.year
0
)
{
context.Response.Write(
{success:falsE}
);
}
else
{
context.Response.Write(
{success:truE}
);
}
;
}
}
}
使用Json时需要注意,服务器端拼凑生成Json字符串时,一定要注意把字符串用/"/"包裹,不然客户端接收时肯定会报错,根据Json字符串生成对象,是根据对应的名称赋值,多于或少于都不会报错.大佬总结
以上是大佬教程为你收集整理的Net 3.5 用DataContractJsonSerializer实现Json序列和反序列例子全部内容,希望文章能够帮你解决Net 3.5 用DataContractJsonSerializer实现Json序列和反序列例子所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。