Java中POJO对象转换为JSON对象的方法

4

我的要求是将POJO或DTO对象转换为JSON格式,我使用了以下方法:

JsonObject obj = gson.toJsonTree(pojo class).getAsJsonObject();
for (String key: obj.keySet()) {
    System.out.println(" key is " + key + " value  is " + obj.get(key));
}

但是,我得到的关键数据是字符串(例如:"employee"),所以如果我将这个数据插入到数据库中,它只会插入带有双引号的字符串("employee")。

所以问题不在于 JSON 转换,而是存储在数据库中? - Joakim Danielson
是的,它作为字符串存储在数据库中,JsonObject obj = new JsonObject(gson.toJson(object_need))通过循环obj,我得到了正确的数据。使用这段代码,我的问题得到了解决。 - Srikanth Janapati
1个回答

5
您可以使用第三方库,例如JacksonGson来序列化和反序列化对象,轻松完成此操作。

Jackson: 参考代码片段:

ObjectMapper mapper = new ObjectMapper();
User user = new User();

//Object to JSON in file
mapper.writeValue(new File("c:\\user.json"), user);

//Object to JSON in String
String jsonInString = mapper.writeValueAsString(user);

你可以从这里找到详细信息。

Gson:参考代码片段

User user = new User();
Gson gson = new Gson();

// Object to JSON in String
String json = gson.toJson(object_need);

作为参考,以下是详细用法:

但似乎主要问题在于您在将序列化数据插入到数据库时遇到了问题,为解决该问题,您需要提供更多关于该问题的信息。


谢谢您的更新,有没有使用gson库的方法,而不是jackson库,因为在我的项目中没有jackson库,对于这个单一的需求,我不能添加jackson jar文件到我的项目中。 - Srikanth Janapati
我回答了关于问题标题的内容。由于没有提供关于在数据库中存储数据的问题的信息,我编辑了我的答案以请求更多来自 OP 的信息。 - Akiner Alkan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接