2015-12-21 47 views
3

我有以下JSON,我從代碼生成我自己。我基本上是編寫代碼來爲UI生成swagger規範。我正在寫一個新的版本,因爲我仍然使用play 1.3和那個在一段時間內沒有更新的swagger模塊。但是,我從我的代碼生成器中獲得了此JSON,但UI掛在「獲取資源列表:http://localhost:9100/resources.json;請稍候。」 javascript控制檯顯示錯誤「正在獲取」無法讀取null的屬性'參數'爲「swagger spec」。我不這樣做,任何幫助將不勝感激。爲Swagger規範獲取「無法讀取屬性」參數'

 { 
    "swagger": "2.0", 
    "info": null, 
    "host": null, 
    "basePath": null, 
    "tags": [ 
    { 
     "name": "payments", 
     "description": null, 
     "externalDocs": null 
    } 
    ], 
    "schemes": null, 
    "consumes": null, 
    "produces": null, 
    "paths": { 
    "/": { 
     "get": { 
     "tags": [ 
      "payments" 
     ], 
     "summary": "/payment_methods", 
     "description": "", 
     "operationId": "paymentMethods", 
     "schemes": null, 
     "consumes": null, 
     "produces": [ 
      "application/json" 
     ], 
     "parameters": [], 
     "responses": { 
      "default": { 
      "description": "successful operation", 
      "schema": null, 
      "examples": null, 
      "headers": null 
      } 
     }, 
     "security": null, 
     "externalDocs": null, 
     "deprecated": null 
     }, 
     "head": null, 
     "post": { 
     "tags": [ 
      "payments" 
     ], 
     "summary": null, 
     "description": null, 
     "operationId": "addPaypalAccount", 
     "schemes": null, 
     "consumes": null, 
     "produces": null, 
     "parameters": [], 
     "responses": { 
      "default": { 
      "description": "successful operation", 
      "schema": null, 
      "examples": null, 
      "headers": null 
      } 
     }, 
     "security": null, 
     "externalDocs": null, 
     "deprecated": null 
     }, 
     "put": null, 
     "delete": { 
     "tags": [ 
      "payments" 
     ], 
     "summary": null, 
     "description": null, 
     "operationId": "deletePaypalAccount", 
     "schemes": null, 
     "consumes": null, 
     "produces": null, 
     "parameters": [], 
     "responses": { 
      "default": { 
      "description": "successful operation", 
      "schema": null, 
      "examples": null, 
      "headers": null 
      } 
     }, 
     "security": null, 
     "externalDocs": null, 
     "deprecated": null 
     }, 
     "options": null, 
     "patch": null, 
     "parameters": null 
    } 
    }, 
    "securityDefinitions": null, 
    "definitions": null, 
    "parameters": null, 
    "responses": null, 
    "externalDocs": null, 
    "securityRequirement": null 
} 
+0

您是否需要轉義,使用引號或以其他方式更改路徑的格式:{/:{?我的Json編輯器強迫我將其更改爲'/'。 – Bindrid

+0

哦,我很抱歉。由於我使用了JSON視圖擴展名,引號被刪除。引號在那裏,JSON是有效的。我現在用實際的JSON修改了這個問題。你的意思是改變格式? –

回答

2

問題是null值。他們需要被禁用 - null與「不存在」不同。也就是說,我相信你需要配置你的映射器不寫空值。

+0

是的,我認爲你是對的。我的代碼現在支持jax-rs樣式註釋(因爲Swagger註釋不會讓我標記獨立路徑),並且在添加這些註釋的過程中,我配置了映射器只寫入非空值。似乎現在工作。 –