回覆列表
  • 1 # 使用者1686340596450

    其實目前已經有挺多的 JSON 資料校驗的工具了,比較流行的有 JOI、JSON Schema。

    JOI 很靈活,寫起來比較方便。但是有一個問題就是不能跨語言,只能在 JS 中使用。

    JSON Schema 是一套 JSON 資料格式校驗的標準,定義完之後,只要目標語言有 JSON Schema 的校驗庫,就可以重複使用該定義來校驗 JSON 資料。缺點語法特別囉嗦。

    我們團隊目前也是用了 JSON Schema 來定義介面之類的一些資料格式。最開始我們也是直接手寫 JSON Schema,後面真的受不了各種囉嗦的宣告。舉個例子,一個典型的 JSON Schema 定義一般長這樣:

    為了定義一個三個屬性的 Object,要有這麼多巢狀的程式碼。。。真的是無力吐槽。。。

    於是在 JSON Schema 之上,我自己寫了一個庫 Semantic-Schema 來語義化地定義 JSON Schema。提供更好的可讀性、可維護性。庫裡面自帶了校驗工具,能夠直接用來校驗 JSON 資料,同時也能夠直接無縫 pass 成 JSON Schema,方便在 JS 之外的語言使用。而且由於是語義化的,所以也能夠使用 IDE 來完成自動提醒。目前團隊已經全部在使用這個庫來定義資料格式了。

    上面的例子如果使用 Semantic Schema,則可以簡化成:

    如果直接拿來校驗資料的話:

    也可以直接獲取到 JSON Schema 定義,供別的語言使用:

    github: magnuslim/semantic-schema

    npm: semantic-schema

  • 中秋節和大豐收的關聯?
  • 我的蘋果手機抹去所有資料,然後開不了機了怎麼辦?