Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Net 3.5 用DataContractJsonSerializer实现Json序列和反序列例子大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

近来在研究jQuery,用$.ajax在与后台交换数据时用到Json格式,后台前台序列化和反序列化方法研究了很久才成功,发文共享.

前台调用的JS文件需要用jQuery-1.2.6.jsjson2.js(http://www.json.org/json2.js),后台引用空间System.Runtime.serializationSystem.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.WriteObject(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(jsonString));

TjsonObject (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,请注明来意。