第1章 概述
SaCa DataViz提供多种数据源的接入,Rest数据源就是其中的一种。Rest数据源要求接口返回的数据为Json格式的列表数据, 具体格式参考如下:
[{
"orderId": "2016010313265448",
"orderDate": "2016-01-03",
"category": "食品",
"goods": "面包",
"count": 2,
"cost": 2.8,
"payment": 8.8,
"buyer": "徐先生",
"province": "江西省",
"city": "南昌市"
}, {
"orderId": "2016011352714789",
"orderDate": "2016-01-13",
"category": "服装",
"goods": "男士T恤",
"count": 1,
"cost": 41.0,
"payment": 180.0,
"buyer": "胡先生",
"province": "辽宁省",
"city": "大连市"
}]
但是往往实际的接口返回的数据并不是这种格式,这是就需要对Rest数据解析的方法进行扩展。
第2章 数据解析扩展方法
我们提供了一个数据解析接口,需要依据此接口进行扩展:
package com.neusoft.saca.dataviz.dataquery.execute.impl.other;
import java.util.List;
import java.util.Map;
/**
*
* @author ch-zhuo
*
*/
public interface ParseDataHandler {
/**
* 解析接口返回数据
*
* @param result
* @return
*/
public List<Map<String, Object>> getDataList(String result);
}
接口只有一个getDataList方法,此接口的入参为rest接口的返回值,即:Json格式的数据,getDataList返回值为一个单纯的列表数据。
根据rest接口的实际情况不同,实现类有两种使用方法:
- 如果有多个Rest数据源,并且这些rest接口的返回值格式是相同的,或者绝大部分相同。
找到dataviz-service\WEB-INF\lib\dataviz-lib-query.jar,用压缩工具打开此jar,修改data-parse-config.properties文件,如下图:
修改第2行的内容,替换为自己实现的解析类的全限定名。替换后,Rest数据源就会把你实现的类作为默认的数据解析方法。
dataParse.odata=com.neusoft.saca.dataviz.dataquery.execute.impl.other.ODataParseDataHandler
dataParse.rest=com.neusoft.saca.dataviz.dataquery.execute.impl.other.RestParseDataHandler
- 如果只有一个或几个Rest数据源,并且这些rest接口返回的数据局格式都是不同的。
在进行Rest数据源维护是,勾选“另指定数据解析类”,并填写类的全限定名,这个Rest数据源在解析数据时就会使用指定的类进行解析,而不是用默认的解析方法了。如下图: