将结果集转换为 json 的最佳方法是什么

yur*_*ria 4 java json jdbc

我正在ResultsetmySQL服务器获取,并希望将其发送JSON回客户端..服务器写在Java EE..

我一直在为此寻找很多......但没有什么简单的......那个基本过程真的必须那么难吗?还是我的理解有问题?

was*_*ren 5

使用Jackson进行 JSON 处理。如果您将结果转换为 POJO,只需使 POJO Jackson 兼容(例如,getter 将自动序列化或使用@JsonProperty.

将 pojo 转换为 JSON 的示例:

ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(somePojo);
Run Code Online (Sandbox Code Playgroud)

如果您不将结果转换为 POJO,则可以使用所JsonNode调用的子类ObjectNode

例子:

public String convert(ResultSet rs) {
    ObjectNode node = new ObjectMapper().createObjectNode();
    node.put("fieldName", rs.getString("columnName"));
    return node.toString(); // this is proper JSON
}
Run Code Online (Sandbox Code Playgroud)

但是,最常见和干净的方法是从您的函数(无论是 EJB 还是 REST 服务或类似服务)返回一个 POJO,然后让框架为您将其转换为 JSON(通常框架使用 Jackson)。这意味着您的方法只是返回某种与Jackson 兼容的模型对象。