Erlang 聊天室程序(四) 数据交换格式---json的encode
2012-02-27 21:03
281 查看
上一篇实现了json数据到message记录的转换,这篇则是将message还原为json以便发送给客户端。
首先完善上篇中creationDate部分的解析:
再编写编码部分:
首先完善上篇中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
- Erlang 聊天室程序(三) 数据交换格式---json的decode
- JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式 --==- 附上可以编译的程序
- JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式 --==- 附上可以编译的程序
- 提高web性能之--使用JSON格式来进行数据交换
- 在.NET使用JSON作为数据交换格式
- 于数据交换格式XML和JSON的比较
- 数据交换格式之XML和JSON
- 数据交换格式XML和JSON对比
- android中的数据交换格式之JSON
- 在.NET使用JSON作为数据交换格式
- 使用 C++ 处理 JSON 数据交换格式
- XML和JSON两种数据交换格式的比较
- 在.NET使用JSON作为数据交换格式(转http://blog.csdn.net/zhoufoxcn/article/details/6254657)
- 在.NET使用JSON作为数据交换格式
- 采用JSON数据交换格式实现框架
- iOS 中 JSON 数据交换格式
- 轻量级数据交换格式 JSON for C++
- XML和JSON 数据交换格式