起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2195|回复: 0

[分享] 自定义初始化com.justep.baas.data.Table类

[复制链接]

23

主题

95

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
QQ
发表于 2016-8-18 16:41:33 | 显示全部楼层 |阅读模式
新手,记录下开发项目时的一些心得。(新手上路,技术粗糙,还望海涵!)


因开发项目时调用webservice返回的是xml格式数据,在.java中无法直接填充到 Table类中,所以只能 自己在Table中创建列,填充行数据。


主要知识点:1、com.justep.baas.data.Table.Table(Map<String, DataType> arg0)    ,自定义列
                     2、com.justep.baas.data.Row.Row(Map<String, ColumnValue> arg0, RowState arg1)   ,自定义行
                     3、com.justep.baas.data.ColumnValue.ColumnValue(Object arg0)   ,创建 列值
                     4、void com.justep.baas.data.Table.appendRow(Row arg0)   ,填充行的方法
                     5、JSONObject com.justep.baas.data.Transform.tableToJson(Table arg0)  ,table 转换成 Json.




代码:                        Table table = null;
                                List<String> listColumn = new ArrayList<String>();       //保存列名的List
                                Map<String, ColumnValue> mapvalue = null;                 //列名与列值对应的map
                                Map<String, DataType> mapCol = new LinkedHashMap<String, DataType>();    //有序的保存列的信息
                                for (Element child : childElements) { //这里循环的是xml节点(大家可以根据自己的需要写)
                                        mapvalue = new LinkedHashMap<String, ColumnValue>(); //重新初始化
                                        if (child.getName().equals("schema")) {
                                                String[] columnNames = child.getText().split("\\|");
                                                for (int i = 0; i < columnNames.length; i++) {  //循环取得列名
                                                        listColumn.add(columnNames.toString());  
                                                        mapCol.put(columnNames, DataType.STRING);  //保存列名及数据类别
                                                }
                                                table = new Table(mapCol); //初始化表列
                                        } else {

                                                String[] rowValues = child.getText().split("\\|");
                                                for (int y = 0; y < rowValues.length; y++) { //循环列值
                                                        ColumnValue cv = new ColumnValue(rowValues[y]); //初始化列值
                                                        mapvalue.put(listColumn.get(y), cv);   //列名与列值对应
                                                }
                                                Row row = new Row(mapvalue, RowState.NONE);  //初始化 行数据

                                                table.appendRow(row);   //填充行数据
                                        }
                                }
                                json = Transform.tableToJson(table);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-21 19:30 , Processed in 0.080858 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表