Spring JDBCTEMPLATE:构造没有特殊字符的JSON



我正在读取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;

请指导我在哪里我要去哪里。

采用不同的方法。

1(首先创建所需列的pojo

  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.

2(创建一个具有列表的类雇员,将根据RowMapper创建的每个员工对象添加到声明的列表中。

3(使用

a) ObjectMapper mapper = new ObjectMapper();
b) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
c) mapper.writeValueAsString(EmployeeListobjects);

相关内容

  • 没有找到相关文章

最新更新