|
新手,记录下开发项目时的一些心得。(新手上路,技术粗糙,还望海涵!)
因开发项目时调用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);
|
|