问题的提出:
目前有一个项目,WebServer使用java开发(支持更多的平台),而客户端使用C#开发(拥有象DevExpress的界面库)。也不想直接使用ASP.net开发,性能和接入性不够好。
但现在很多情况下又需要通过WebServer获得一个DataSet或DataTable的数据(比如水晶报表需要DataSet,而DevExpress则需要DataSet或DataTable)。
注:考虑到json与对象的转换关系,而且需要表格的schema并不多,所以之前返回的数据List对应的json维持不变
实现方法:
利用Java及C#均具有的json与对象的转换功能实现,Java在这里充当WebServer的角色
1、java从数据库中查询多次表获得各个数据表的schema及数据。注:目前使用mybatis,暂时没有办法得到表的元数据(表结构),但可以通过查询的List<Object>中的Object反向解析得到数据表的字段名,字段类型等信息吧?
2、将查询到的表结构及数据封装进json
class schema
{
}
class DataTable
{
List<schema> schemas_;
List<Object> datas_;
};
class DataSet
{
HashMap<String, DataTable>
};
3、把DataSet的字段信息以json格式传回给C#的客户端
4、C#的客户端相应的解析得到对应的DataSet,并交给水晶报表或DevExpress使用