我有以下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 序列化/反序列化:
-
Jackson https://github.com/FasterXML/jackson
Java 序列化/反序列化的首选库(docs https://github.com/FasterXML/jackson-docs)。对于大多数开发人员来说,Java 中 JSON 交互的默认选择。完全嵌入了所有依赖项spring-boot-starter-web
and spring-boot-starter-webflux
,依赖启动器春季启动 https://spring.io/projects/spring-boot- 流行的 Java IOC/DI 框架。
Dependencies (databind is the main dependency, for annotations and additional features you will need more Jackson dependencies):
Maven:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
Gradle:
dependencies {
implementation "com.fasterxml.jackson.core:jackson-databind:${yourVersion}"
}
序列化片段:
TabularDescriptor tabularDescriptor = new TabularDescriptor();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(tabularDescriptor);
-
Gson https://github.com/google/gson
Google 的 Java 序列化/反序列化库(docs https://www.javadoc.io/doc/com.google.code.gson/gson/latest/com.google.gson/module-summary.html).
依赖项:
Gradle:
dependencies {
implementation "com.google.code.gson:gson:${yourVersion}"
}
Maven:
<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);
值得注意的细节:您必须将所有 getter/setter 公开才能实现对象的完整序列化和完整反序列化(以最简单的形式)。在任何情况下,空构造函数都是必须的。
参考信息:
- Java 中的 JSON 作者:Baeldung https://www.baeldung.com/java-json
- 杰克逊 vs Gson by Baeldung https://www.baeldung.com/jackson-vs-gson
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)