我正在从postgreSQL DB中读取表,并将所有列及其值填充到json对象中。
postgre中的一列是json类型。因此输出中有很多转义字符。像下面的密钥dummykeyname一样。
{
"XY": "900144",
"id": 1,
"date": 1556167980000,
"type": "XX50",
"dummykeyname": {
"type": "json",
"value": "{\"XXXX\": 14445.0, \"YYYY\": 94253.0}"
}
}
我希望输出看起来像
"value": "{"XXXX": 14445.0, "YYYY": 94253.0}"
我使用的代码是
JSONArray entities = new JSONArray();
var rm = (RowMapper<?>) (ResultSet result, int rowNum) -> {
while (result.next()) {
JSONObject entity = new JSONObject();
ResultSetMetaData metadata = result.getMetaData();
int columnCount = metadata.getColumnCount() + 1;
IntStream.range(1, columnCount).forEach(nbr -> {
try {
entity.put(result.getMetaData().getColumnName(nbr), result.getObject(nbr));
} catch (SQLException e) {
LOGGER.error(e.getMessage());
}
});
entities.add(entity);
}
return entities;
};
使用的库:
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
请指导我哪里出问题了。
答案 0 :(得分:0)
采用其他方法。
1)首先创建所需列的pojo
<html>
<head>
<script type="text/javascript">
<!--
// Dividi la totalità del traffico per il numero di array (es. 100/3 o 100/4, a seconda del numero di links[X]. La seguente impostazione è per avere 66 e 33 )
var links = new Array();
links[0] = "URL DEL FORM A";
links[1] = "URL DEL FORM A";
links[2] = "URL DEL FORM B";
function openLink() {
// Chooses a random link:
var i = Math.floor(Math.random() * links.length);
// Directs the browser to the chosen target:
parent.location = links[i];
return false;
}
//-->
</script>
</head>
<body onload="openLink();">
</body>
</html>
2)创建一个具有List的EmployeeList类,将从rowmapper创建的每个Employee对象添加到声明的列表中。
3)使用
ex : if your table has 4 columns
id, name, country, mobile create a class Employee and populate the class using rowmapper available in spring jdbc.