Erlang 聊天室程序(四) 数据交换格式---json的encode
来源:互联网 发布:淘宝女装挂拍技巧 编辑:程序博客网 时间:2024/05/16 11:45
上一篇实现了json数据到message记录的转换,这篇则是将message还原为json以便发送给客户端。
首先完善上篇中creationDate部分的解析:
para({"creationDate",Val},Data)->{obj,List}=Val,Time=#time{},NewData1=Data#message{time=Time},NewData=paraEle(List,NewData1);para({"date",Val},Data) when is_integer(Val)->io:format("para date:~p~n",[Data]),#message{time=Time}=Data,NewTime=Time#time{date=Val},NewData=Data#message{time=NewTime};para({"day",Val},Data) when is_integer(Val)->io:format("para day:~p~n",[Data]),#message{time=Time}=Data,NewTime=Time#time{day=Val},NewData=Data#message{time=NewTime};para({"hours",Val},Data) when is_integer(Val)->#message{time=Time}=Data,NewTime=Time#time{hours=Val},NewData=Data#message{time=NewTime};para({"minutes",Val},Data) when is_integer(Val)->#message{time=Time}=Data,NewTime=Time#time{minutes=Val},NewData=Data#message{time=NewTime};para({"month",Val},Data) when is_integer(Val)->#message{time=Time}=Data,NewTime=Time#time{month=Val},NewData=Data#message{time=NewTime};para({"seconds",Val},Data) when is_integer(Val)->#message{time=Time}=Data,NewTime=Time#time{seconds=Val},NewData=Data#message{time=NewTime};para({"time",Val},Data) when is_integer(Val)->#message{time=Time}=Data,NewTime=Time#time{thetime=Val},NewData=Data#message{time=NewTime};para({"timezoneOffset",Val},Data) when is_integer(Val)->#message{time=Time}=Data,NewTime=Time#time{offset=Val},NewData=Data#message{time=NewTime};para({"year",Val},Data) when is_integer(Val)->#message{time=Time}=Data,NewTime=Time#time{year=Val},NewData=Data#message{time=NewTime};
再编写编码部分:
paraseEncode(Message)->{message,Id,Type,From,To,Subject,Content,Time}=Message,{time,Date,Day,Hours,Minutes,Month,Seconds,TheTime,Offset,Year}=Time,Data={obj,[{"content",list_to_binary(Content)}, {"from",list_to_binary(From)}, {"to",list_to_binary(To)}, {"subject",list_to_binary(Subject)}, {"id",list_to_binary(Id)}, {"type",list_to_binary(Type)}, {"creationDate",{obj,[{"date",Date}, {"day",Day}, {"hours",Hours}, {"minutes",Minutes}, {"month",Month}, {"seconds",Seconds}, {"time",TheTime}, {"timezoneOffset",Offset}, {"year",Year}] } }] }, rfc4627:encode(Data).测试如下:
14> util_MessageParas:paraseEncode({message,"289n-2","msg","client1",[],"chat","aaa", {time,27,1,18,8,1,26,1330337306984,-480,112}})."{\"content\":\"aaa\",\"from\":\"client1\",\"to\":\"\",\"subject\":\"chat\",\"id\":\"289n-2\",\"type\":\"msg\",\"creationDate\":{\"date\":27,\"day\":1,\"hours\":18,\"minutes\":8,\"month\":1,\"seconds\":26,\"time\":1330337306984,\"timezoneOffset\":-480,\"year\":112}}"
- Erlang 聊天室程序(四) 数据交换格式---json的encode
- Erlang 聊天室程序(三) 数据交换格式---json的decode
- Extjs 使用Ext.JSON.encode封装json格式的数据
- JSON数据交换格式
- JSON数据交换格式
- JSON - 轻量级的数据交换格式
- JSON:一种轻量级的数据交换格式
- JSON:一种轻量级的数据交换格式
- JSON --- 一种轻量级的数据交换格式
- 文本数据交换格式:JSON
- Json轻量级数据交换格式
- Erlang 聊天室程序(二) 客户端的退出
- JSON数据模式--轻量级的数据交换格式!
- Erlang 聊天室程序( 一)
- Erlang 聊天室程序( 一)
- Erlang 聊天室程序
- 关于数据交换格式XML和JSON的比较
- JSON——基于javascript的轻量级数据交换格式
- java.lang.OutOfMemoryError异常解决方法
- Spring Security 3.0.5 自定义登录
- 从select语句看Oracle数据库查工作原理
- 长三角
- 良好的编程习惯
- Erlang 聊天室程序(四) 数据交换格式---json的encode
- 第八周作业
- hdu 1231 最大连续子序列
- eGalax触摸屏相关知识
- 我所认识的人性
- 关于java中集合类的理解
- 关于cvseq
- Javascript继承机制的设计思想
- 循环语句的使用