json转html
{
"DS": [
{
"PROVINCE": "陕西省",
"ADMIN_CODE_CHN": "610600",
"STATION_ID_C": "53845",
"LON": "109.4497",
"V31001_S": 10,
"V31001_X": 0
},
{
"PROVINCE": "陕西省",
"ADMIN_CODE_CHN": "610600",
"STATION_ID_C": "53845",
"LON": "109.4497",
"V31001_S": 10,
"V31001_X": 0
}
]
}
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
public static String jsonObject2Html(JSONObject jsonObject) {
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.append("");
htmlBuilder.append("");
JSONArray jsonArray = jsonObject.getJSONArray("DS");
JSONObject firstObject = jsonArray.getJSONObject(0);
// 创建表头
htmlBuilder.append("");
for (String key : firstObject.keySet()) {
htmlBuilder.append("").append(key).append(" ");
}
htmlBuilder.append(" ");
// 添加数据行
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject dataObject = jsonArray.getJSONObject(i);
htmlBuilder.append("");
for (String key : dataObject.keySet()) {
htmlBuilder.append("").append(dataObject.get(key)).append(" ");
}
htmlBuilder.append(" ");
}
htmlBuilder.append("
");
return htmlBuilder.toString();
}
<style>table {border-collapse: collapse;} th, td {border: 1px solid black; padding: 8px;}</style>
<table>
<tr><th>PROVINCE</th><th>ADMIN_CODE_CHN</th><th>STATION_ID_C</th><th>LON</th><th>V31001_S</th><th>V31001_X</th></tr>
<tr><td>陕西省</td><td>610600</td><td>53845</td><td>109.4497</td><td>10</td><td>0</td></tr>
</table>

@Mapper
public interface ISurfaceMapper {
/**
* 根据时间段和站号查找地面要素
* @param dataCode 数据编码
* @param elements 要素
* @param staIds 站号
* @param startTime 起始时间
* @param endTime 结束时间
* @return JSONObject
*/
List<JSONObject> getSurfEleByTimeRangeAndStaID(@Param("dataCode") String dataCode,
@Param("elements")List<String> elements,
@Param("staIds")List<String> staIds,
@Param("startTime")Date startTime,
@Param("endTime")Date endTime);
}
mapper xml
查询条件、表格、查询字段动态生成
<mapper namespace="cma.sxqxgxw.api.mapper.ISurfaceMapper">
<select
id="getSurfEleByTimeRangeAndStaID"
resultType="com.alibaba.fastjson2.JSONObject"
>
SELECT
<if test="elements != null and elements.size > 0">
<foreach
collection="elements"
item="element"
separator=","
>
${element}
</foreach>
</if>
FROM ${dataCode}
<where>
DATE_TIME <![CDATA[ >= ]]> #{startTime}
AND
DATE_TIME <![CDATA[ < ]]> #{endTime}
<if test="staIds != null and staIds.size() > 0">
AND
STATION_ID_C IN
<foreach collection="staIds" item="stationId" index="index" open="(" close=")" separator=",">
#{stationId}
</foreach>
</if>
</where>
</select>
</mapper>
application.yaml
server:
port: 8896
spring:
jackson:
time-zone: Asia/Shanghai
# date格式化
date-format: yyyy-MM-dd HH:mm:ss
servlet:
multipart:
# 上传附件大小控制
max-file-size: 300MB
max-request-size: 300MB
datasource:
remote-xugu1:
username: SYSDBA
password: SYSDBA
driver-class-name: com.xugu.cloudjdbc.Driver
# 连接数据库指定时区,time_zone=GMT-8:00为世界时
url: jdbc:xugu://ip:port/SYSTEM?time_zone=GMT-8:00