[英]Convert Java pojo to json String
我有以下java类
public class TabularDescriptor extends ReportDescriptor {
private String generatorClass;
private String targetClass;
private String name;
private String sublabel;
private String reportName;
private List<MappingMetadata> mappings = null;
private List<TabularColumnGroup> columnGroups = null;
private List<TabularStates> states = null;
:
:
and its getters and settere
对于每个列表,我都有实体类,例如 MappingMetadata、TabularColumnGroup、TabularStates。 我想获得这个 pojo 类的 json 数据。 我能为它做什么。
还有什么用
public JSONObject toJSON() {
JSONObject ret = new JSONObject();
ret.put("generatorClass", this.generatorClass);
ret.put("targetClass", this.targetClass);
ret.put("name", this.name);
:
:
return ret;
}
无论如何我可以在浏览器上显示我的json内容,如果是的话,我该怎么做? 谢谢。
有 2 个库使用 Java 处理 JSON 序列化/反序列化:
Google 的 Java 序列化/反序列化库( docs )。
摇篮:
dependencies { implementation "com.google.code.gson:gson:${yourVersion}" }
马文:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>${gson.version}</version> </dependency>
TabularDescriptor tabularDescriptor = new TabularDescriptor(); Gson gson = new Gson(); String json = gson.toJson(obj);
另一个用于 Java 序列化/反序列化 ( docs ) 的库,完全嵌入了spring-boot-starter-web
中的所有依赖项, Spring Boot的依赖项启动器之一 - 流行的 Java IOC/DI 框架。
马文:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency>
摇篮:
dependencies { implementation "com.fasterxml.jackson.core:jackson-databind:${yourVersion}" }
TabularDescriptor tabularDescriptor = new TabularDescriptor(); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(tabularDescriptor);
值得注意的细节:对于对象的完整序列化和完整反序列化(以最简单的形式),您必须公开所有 getter/setter。 在任何情况下都必须有一个空的构造函数。
参考文章:
您可以使用ObjectMapper或Gson进行类到 JSON 的转换,反之亦然。
(我会推荐 ObjectMapper)
- 对象映射器
- GSON
- 比较
我建议您将 Jackson 添加到您的项目中,它很容易使用。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
在 Java 代码中可以这样使用:
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(tabularDescriptor);
TabularDescriptor newTabularDescriptor = objectMapper.readValue(json, TabularDescriptor.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.