首页 新闻 会员 周边

反序列化问题,后台。

0
悬赏园豆:20 [已解决问题] 解决于 2010-08-12 20:40

前台传回来的JSON格式数据一般在后台看来都一个文本string,有什么比较好的解决方案去处理这些string?在后台处理的时候,当反序列化的时候如果不指定类型是不行的。我的一般做法是,设计一个针对对前台的类,来适配反序列化来获得属性,但这样又觉得很不舒服,感觉前台和后台透明化了,最主要是感觉被前台牵制住,而且是强牵制。求高见~!

bugfly的主页 bugfly | 初学一级 | 园豆:10
提问于:2010-08-11 19:13
< >
分享
最佳答案
0

这样做,肯定是不行,不管是你写一个类,还是对每种JSON数据写一个处理方法,你始终是被动的。不知道你的后台要使用属性到何种地步,虽然可以有动态类,但是,我觉得也不一定能解决你的问题。因为从你的描述看来,一切都是变动的。

然而,对于一个特定系统而言,它总有不变的东西,比如领域对象,你应该提炼出领域对象,然后制定前后台交互的契约。当使用领域对象后,要变动的就是增加,减少或修改领域对象或领域对象的属性。JSON只是在前后台之间传递领域对象的形式。

收获园豆:20
Launcher | 高人七级 |园豆:45045 | 2010-08-11 22:41
什么是动态类?
bugfly | 园豆:10 (初学一级) | 2010-08-11 22:51
1)你所提到的动态类,我有点摸不着头脑,是怎么一回事,希望解析一下。 2)领域对象等PO是不会变,也就是相对底层的东西,尽量都不会变,既然不变,必然对外的只能是VO、DTO、才能自由访问数据。不过这些东西牵制性质太重,我趋向用匿名类型去传递,如果要修改领域对象,我另可起一个VO去适应变化。
bugfly | 园豆:10 (初学一级) | 2010-08-12 08:32
@桀骜的灵魂:就是.net 4.0中的动态类型.dynamic关键字允许先使用方法和属性而后定义类型. 我不知道你反序列化来获得属性后,是要在用来做什么,另外你的"牵制性质太重"具体是指什么意思?
Launcher | 园豆:45045 (高人七级) | 2010-08-12 09:23
谢谢,我等会研究一下。我所说的牵制性是指VO针对前台,而定义在后台,前台变VO需求就变,意味后台就要改相应的VO类。我考虑很清楚了,不应该使用VO,应该用领域对象,我所理解的就是所谓的PO去作为一个协约去使用JSON。
bugfly | 园豆:10 (初学一级) | 2010-08-12 09:53
其他回答(1)
0

为什么不按照标准来序列化。

JSON序列化

Astar | 园豆:40805 (高人七级) | 2010-08-12 08:01
Astar,你的意思是定义一套序列化标准?就像VO类集合?
支持(0) 反对(0) bugfly | 园豆:10 (初学一级) | 2010-08-12 08:26
@桀骜的灵魂:就像这样。http://www.cnblogs.com/68681395/archive/2009/06/08/1498343.html
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-12 08:35
大哥,我看了你推荐的博文了,没看懂你意思。例子中的JSON级VO类,正是一种不好的做法。
支持(0) 反对(0) bugfly | 园豆:10 (初学一级) | 2010-08-12 20:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册