将Swagger Java对象转换为JSON/YAML

10

我需要阅读、修改和重新生成一个JSON/YAML格式的Swagger文件文档。我已经使用Swagger解析器对JSON文件进行了反序列化,并获得了一个正确映射原始JSON数据的Swagger Java对象。

现在,我需要修改Swagger Java对象,并生成带有所做修改的JSON或YAML文件。

有没有办法做到这一点?

摘要:

File fileJSON = FileUtils.toFile(getClass().getResource("example-api-rest.json"));

Swagger swagger = new SwaggerParser().read(fileJSON.getPath()); //Got it!
...
swagger.editWhatever
...
//Here I need to generate the JSON or YAML again

谢谢。

1个回答

15
生成JSON:

要生成JSON:

import io.swagger.util.Json;

String jsonOutput = Json.pretty(swagger);

生成YAML:

import io.swagger.util.Yaml;

String yamlOutput = Yaml.pretty().writeValueAsString(swagger);

io.swagger.util 包是 Swagger Core 的一部分,它是 Swagger Parser 的依赖项之一。


如果我不需要它看起来漂亮,有没有一种方法可以不将字符串解析为Java然后再转换为Json? - TheClassic
@TheClassic 能否请您澄清首先您想要做什么?我不确定我理解了。 - Helen
1
@TheClassic 如果你想知道 io.swagger.util.Json 类是否具有非美化输出方法 - 此类内部使用 Jackson ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)。因此,你可以创建并使用自己的 Jackson ObjectMapper 实例来实现所需的序列化设置,而不是使用 io.swagger.util.Json - Helen

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