复制代码代码如下所示:
X
用于向客户机发送的JSON序列化
X
Public static string ToJsJson (this object item)
{
datacontractjsonserializer序列化
程序=新datacontractjsonserializer(item.gettype());
使用(MemoryStream MS =新MemoryStream())
{
serializer.writeobject(MS项目);
StringBuilder某人新的StringBuilder();
某人(encoding.utf8.getstring(ms.toarray append()));
返回sb.tostring();
}
}
X
JSON / / /反序列化接收客户端后用来生成相应的JSON对象
X
公共静态T FromJsonTo(这个字符串jsonstring)
{
datacontractjsonserializer SER =新datacontractjsonserializer(typeof(t));
凯迪
网络最新MemoryStream(encoding.utf8.getbytes(jsonstring));
T JSONObject =(t)ser.readobject(MS);
Close女士();
返回JSONObject;
}
实体类
复制代码代码如下所示:
{ DataContract }
testobj公共类
{
{ DataMember }
公共字符串使;get;set;}
{ DataMember }
公共字符串模型{ get;set;}
{ DataMember }
公共int年;get;set;}
{ DataMember }
公共字符串颜色{ get;set;}
}
------------------ Javascript获取JSON --------------------
调用测试代码
复制代码代码如下所示:
$(# getJSON)。Click(function(){)
$ ajax({
网址:getjsonhandler .ashx
类型:' ',
数据:{ },
DataType:'json,
超时时间:1000,
错误:
函数(XMLHttpRequest,textstatus,errorthrown){ alert(textstatus)},
成功:函数(结果){
警报(结果,制造);
警报(结果,模型);
警报(结果);
警报(结果,颜色);
}
});
});
C #
背景生成代码
复制代码代码如下所示:
公共课getjsonhandler:IHttpHandler
{
public void ProcessRequest(HttpContext上下文)
{
testobj obj =新testobj();
obj.make =让价值;
obj.model =
模式的价值;
obj.year = 999;
obj.color =颜色值;
context.response.write(obj.tojsjson());
}
公共布尔
方法 {
得到
{
返回false;
}
}
}
返回值是颜色是值
----------------- C #产生的JSON对象
调用测试代码
复制代码代码如下所示:
$(# postjson)。Click(function(){)
无功m_obj = {:道奇),
型号:凤冠R / T
无功jsonstr = json.stringify(m_obj); / / JSON字符串生成json2.js
$ ajax({
网址:postjsonhandler .ashx
类型:'post,
数据:{ postjson:jsonstr },
DataType:'json,
超时时间:1000,
错误:函数(XMLHttpRequest,textstatus,errorthrown){ alert(textstatus)},
成功:函数(结果){
警报(结果,成功);
}
});
});
C #背景生成代码
复制代码代码如下所示:
公共课postjsonhandler:IHttpHandler
{
public void ProcessRequest(HttpContext上下文)
{
字符串jsonstr =语境。请求{postjson};
testobj obj = jsonstr.fromjsonto();
如果(string.isnullorempty(obj。使)| | string.isnullorempty(对象模型)string.isnullorempty(obj。颜色)| |
| | obj.year<0)
{
context.response.write({成功:假} );
}
其他的
{
context.response.write({成功:true} );
}
公共布尔方法
{
得到
{
返回false;
}
}
}
当我们使用JSON时,我们需要注意,当
服务器最终生成JSON字符串时,我们必须注意用包装字符串。否则,当客户端收到它时,它肯定会
报告错误,并根据JSON字符串生成对象,这些字符串是根据相应的名称分配的,或多或少不会被报告。