小编Mik*_*rey的帖子

如何创建包含不同类型数组的swagger架构

我正在尝试为包含不同类型的对象数组的对象定义一个swagger模式定义.

这是模板对象(以及所有相关对象类型)的json模式.我知道swagger不支持oneOf谓词,所以我只是想弄清楚如何以骄傲的形式描述这个数据结构.我已经尝试了很多这种语法的变体,但没有一个有效,这是我可以根据规范得到的最接近的一些例子和http://json-schema.org/example2.html

swagger: '2.0'
info:
  version: 1.0.0
  title: IDMU
paths:

definitions:
  template:
    type: object
    properties:
      collection:
        type: string
      name:
        type: string
      columnValue:
        type: string
      description:
        type: string
      outputFile:
        type: string
      content:
        type: string
      directives:
        type: array
        items:
          type: object
          oneOf: 
            - 
              $ref: '#/definitions/directiveRequire'
            - 
              $ref: '#/definitions/directiveReplace'
            - 
              $ref: '#/definitions/directiveReplaceRowSql'
            - 
              $ref: '#/definitions/directiveReplaceRowCsv'
            - 
              $ref: '#/definitions/directiveReplaceColSql'
            - 
              $ref: '#/definitions/directiveReplaceColCsv'
            - 
              $ref: '#/definitions/directiveInsertTag'
            - 
              $ref: '#/definitions/directiveInsertCsv'
            - 
              $ref: '#/definitions/directiveInsertSql'
  providerCsv:
    type: object
    properties:
      type:
        type: integer
        maximum: 3
        minimum: 3
      tag: …
Run Code Online (Sandbox Code Playgroud)

arrays json yaml swagger

21
推荐指数
3
解决办法
4万
查看次数

Gson Type Adapter与Custom Deseralizer

下面的示例显示了一个包含抽象类(Member)集合的类(Club).我很困惑我是否需要TypeAdapter或JsonDeserializer来使反序列化正常工作.序列化在没有任何帮助的情况下工作正常,但反序列化会抛出异常.为了说明我已经构建了以下"克隆"测试.如果有人能展示一个有效的例子,我将非常感激.

第一俱乐部课程

package gson.test;
import java.util.ArrayList;

import com.google.gson.Gson;

public class Club {
    public static void main(String[] args) {
        // Setup a Club with 2 members
        Club myClub = new Club();
        myClub.addMember(new Silver());
        myClub.addMember(new Gold());

        // Serialize to JSON
        Gson gson = new Gson();
        String myJsonClub = gson.toJson(myClub); 
        System.out.println(myJsonClub);

        // De-Serialize to Club
        Club myNewClub = gson.fromJson(myJsonClub, Club.class);
        System.out.println(myClub.equals(myNewClub) ? "Cloned!" : "Failed");
    }

    private String title = "MyClub";
    private ArrayList<Member> members = new ArrayList<Member>();

    public boolean equals(Club that) {
        if …
Run Code Online (Sandbox Code Playgroud)

java gson

16
推荐指数
2
解决办法
2万
查看次数

标签 统计

arrays ×1

gson ×1

java ×1

json ×1

swagger ×1

yaml ×1