从Java Swagger模型创建Json

假设我有一个来自库io.swagger.models.Swagger的类io.swagger:swagger-models:1.5.24的对象。如何将其转换为JSON?

我的目标是根据我们的REST API定义创建一个json文件。我们在Scala中使用Finch / Finagle,这将是一项全新的功能;我希望它尽可能通用。我对设计有一个想法,但是它需要将Java模型转换为JSON,而我尚未在Swagger中找到该功能。

这是第2版。不知道它是什么版本的OpenAPI。如果还有一种生成swagger v3和相关的OpenAPI的方法,将不胜感激,但是swagger v2在这里是绝对必要的。

wx8823 回答:从Java Swagger模型创建Json

您可以使用Gson库对Java对象进行编码。我在"com.google.code.gson" % "gson" % "2.8.6"文件中使用了build.sbt

Scala代码如下:

def getServerJson: String = {
    val gson = (new GsonBuilder).setPrettyPrinting().create
    val swag = new Swagger()

    val op = new Operation
    op.setVendorExtensions(null)
    op.setSummary("Updates a pet in the store with form data")
    op.consumes("application/x-www-form-urlencoded")
    val p = new Path
    p.setVendorExtensions(null)
    p.setPost(op)
    swag.path("/pet/{petId}",p)

    gson.toJson(swag)
  }

它是有状态的,这很烦人。也许存在不可变的模型对象,这些对象在功能程序中将更易于操作。没什么大不了的,它满足了我的迫切需求。 Json产生的外观如下:

{
  "swagger": "2.0","paths": {
    "/pet/{petId}": {
      "post": {
        "summary": "Updates a pet in the store with form data","consumes": [
          "application/x-www-form-urlencoded"
        ],"parameters": []
      }
    }
  }
}
本文链接:https://www.f2er.com/3163250.html

大家都在问