1.客户端JSON对象和字符串之间的转换和引用(JavaScript):
从官网下载:json.js,放在/js目录下
里面提供了一些JAVASCRIPT函数实现 JSON Object 和Json Text之间的相互转换。
它里面虽然代码众多,但是供外界调用的也只有两个函数――一个编码函数一个解码函数:
value, replacer, space);//后面两个参数是可选项 JSON.parse(text, reviver);//后面的参数是可选项 |
调用方法示例:
Json2String.html:将json编码成string
String2Json.html:将string解码成Json
下面的这段方法是在客户端提取Josn的Key对象:
代码
2.服务器端JSON对象和字符串之间的转换和引用(C#):
从官网上下载JSON.cs,放在App_Code文件目录下
里面提供了一些基于C#的函数实现Json Text和 C# Object之间的相互转换。
里面函数虽然众多,但是直接给外部调用的只有两个:
调用方法示例:
3.对中文的支持
3.1服务器端编码-客户端解码
服务器端的“JSON.cs”文件提供的方法,对中文编码有良好的支持,在编码时,服务器端会自动将中文编码成其对应的Unicode代号。
经过JSON.CS编码:
mySourceHT哈希表的内容为:
城市花园线: "10031" 柘电线: "10004" 桥北环: "10002" 桥西环: "10001" 浔阳江畔线: "10030" |
经过JSON.JsonEncode((object)mySourceHT);编码后得到strEnCode,查看中间变量值,发现strEnCode里面的中文字段全部变成了UniCode代号,其值如下:
{"\u57ce\u5e02\u82b1\u56ed\u7ebf":"10031", "\u67d8\u7535\u7ebf":"10004", "\u6d54\u9633\u6c5f\u7554\u7ebf":"10030", "\u6865\u5317\u73af":"10002", "\u6865\u897f\u73af":"10001" } |
这样的字符串经过异步通讯传递到客户端后,由JavaScript函数承接
客户端示例代码:
例如:json字符串传递过来至参数result中,经过var myObject = JSON.parse(result);解码后就变成了如下结果:
myObject {...} 城市花园线: "10031" 柘电线: "10004" 桥北环: "10002" 桥西环: "10001" 浔阳江畔线: "10030" |
所以,中文字符从服务器端传递到客户端时,不需要采取任何额外的措施就可以完成中文字符的传输。
3.2客户端编码-服务器端解码
客户端对中文编码的处理:
//下面的字符全部用UNICODE进行编码 "TB_SheBeiMC_Value":(TB_SheBeiMC_Value), "TB_ShengChanCJ_Value":escape(TB_ShengChanCJ_Value), |
对于中文输入,需要经过函数处理后再进行json编码,否则就出现乱码了。
服务器端中文解码处理:
服务器端用HttpContext.Current.Server.UrlDecode()函数就可以将客户端escape()函数的处理效果转码成中文,这样就完成了中文从客户端到服务器端的传送了。
最后附一张JSON编码解码流程图:
-----------------------------------------------
密钥,一次性密码加密系统软件,视频切割、转换、合成系统软件开发,语音视频聊天,语音识别软件开发,android触摸手机软件开发,公司内部关公系统开发,时时彩,彩票系统开发(OR,CRM,ERP等)