欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JSON schema配置規(guī)范使用教程

 更新時(shí)間:2022年08月09日 14:31:04   作者:嘿嘿Z  
這篇文章主要為大家介紹了JSON schema配置規(guī)范使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

介紹

不知道大家在寫一些 JSON 配置時(shí)會(huì)不會(huì)經(jīng)常覺得麻煩,每次都要打開文檔去核對(duì)字段名稱對(duì)不對(duì)、結(jié)尾有沒有 s、結(jié)構(gòu)是否正確、是不是數(shù)組等問題。然而我最近發(fā)現(xiàn)一些開源項(xiàng)目生成的配置文件中都開始使用 JSON schema 來規(guī)范配置文件,IDE 也會(huì)對(duì) JSON 配置進(jìn)行提示和檢查,真香。本文介紹下 JSON schema 的使用方法和使用場(chǎng)景。

JSON schema 是一套對(duì) JSON 進(jìn)行規(guī)范化的方案,在 JSON 文件中聲明 schema 即可使用 JSON schema 檢查 JSON 文件的正確性,且大部分主流 IDE 可對(duì) JSON 文件進(jìn)行屬性提示、字段校驗(yàn)。

使用

JSON schema 的使用方式非常簡(jiǎn)單,只需要在 JSON 文件中添加 $schema 字段,指定 schema 文件地址即可。

{
    "$schema": "https://json.schemastore.org/jsconfig"
}

添加后,IDE 或其它工具將會(huì)根據(jù)目標(biāo)地址中的 schema 定義對(duì) JSON 文件進(jìn)行檢查和智能提示等等。

如上圖,會(huì)在編輯時(shí)自動(dòng)提示字段名稱,hover 字段名顯示字段解釋,類型錯(cuò)誤的字段顯示警告等等。

除了上述使用網(wǎng)絡(luò)地址來標(biāo)識(shí) schema 文件外,還可以使用本地文件地址,比如:

{
    "$schema": "./my-schema.json"
}

schemastore

schemastore 中存儲(chǔ)了很多項(xiàng)目常用的 JSON schema

地址:https://www.schemastore.org/json/

里面包含了常見的 prettier、eslint、jsconfig、tsconfig、各類 ci/cd、lerna 等工具的配置文件,可直接引用。

并且還提供了所有支持的清單:https://www.schemastore.org/api/json/catalog.json

開源項(xiàng)目可在 https://github.com/schemastore/schemastore/中提交自己的 schema。

當(dāng)然也可以自己管理,只需提供可訪問的網(wǎng)絡(luò)地址即可。

編寫 schema

編寫 schema 其實(shí)也很簡(jiǎn)單,JSON schema 也存在幾套規(guī)范,我目前能看到的包括:

JSON Schema Draft 4

JSON Schema Draft 7

JSON Schema Draft 8

JSON Schema Draft 2020-12

上述對(duì)應(yīng)的 schema 文件都可在 schemastore 中找到。

編寫時(shí)同樣可指定編寫文件的 $schema,注意草案 8 和 2020-12 使用到了 $recursiveRef,而 vsc 暫不支持,所以下面使用 Draft 7 規(guī)范來進(jìn)行編寫。

{
    "$schema": "https://json-schema.org/draft-07/schema",
    "$id": "my-schema"
}

可使用 $id 來表示 schema。

編寫主要使用大兩個(gè)屬性,一個(gè)是 properties,用于定義屬性,一個(gè)是 definitions,用于定義 schema 片段(可理解為變量)。

properties

先看下 properties 的使用:

{
    "properties": {
        "name": {
            "type": "string",
            "title": "this is your name"
        },
        "age": {
            "type": "number",
            "title": "this is your age"
        }
    }
}

上面定義了 json 中的兩個(gè)屬性,name 為字符串,title 為數(shù)字,title 為屬性的描述,也可以使用 description

然后我們?cè)?json 文件中即可使用 $schema 來引用我們剛剛定義的 schema,如下:

{
    "$schema": "my-schema.json",
    "name": "嘿嘿",
    "age": 32
}

definitions

definitions 一般用于定義一些復(fù)雜類型,方便在 schema 中復(fù)用定義:

{
    "definitions": {
        "name": {
            "type": "object",
            "properties": {
                "firstName": {
                    "description": "First name",
                    "type": "string"
                },
                "lastName": {
                    "description": "Last name",
                    "type": "string"
                },
                "middleName": {
                    "type": "string",
                    "description": "Middle name"
                }
            }
        }
    }
}

上述代碼及定義里一個(gè) nameschema 字段,包含 firstName、lastName、middleName 三個(gè)屬性,然后我們需要在 properties 中引用它:

{
    "properties": {
        "fullName": {
            "$ref": "#/definitions/name"
        }
    }
}

$ref 代表此處定義為引用,屬性為引用的地址,# 為該 schema 文件的根,此處即為引用 definitionsname 的定義。

然后我們便可在 json 文件中使用我們剛剛定義的 schema

{
    "$schema": "my-schema.json",
    "fullName": {
        "firstName": "嘿",
        "lastName": "嘿"
    }
}

除了上述的屬性定義等, JSON schema 還提供了其它的一些定義,如數(shù)組、數(shù)字的范圍等等。

總結(jié)

JSON schema 可以用來規(guī)范我們的配置文件,借助 IDE 的智能提示還能降低我們編寫配置文件的成本,如果存在這方面的需求,趕緊用起來吧。

參考

JSON Schema

Understanding JSON Schema

以上就是JSON schema配置規(guī)范使用教程的詳細(xì)內(nèi)容,更多關(guān)于JSON schema配置規(guī)范的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 正則表達(dá)式搭配js輕松處理json文本方便而老古

    正則表達(dá)式搭配js輕松處理json文本方便而老古

    如何解析Json已經(jīng)成為了眾多業(yè)內(nèi)人士談?wù)摰慕裹c(diǎn),依我看,要解析輕量化類型json,用.net自帶的類庫就可以勝任了,有一種看起來更方便的老古董——正則表達(dá)式,處理json是綽綽有余,感興趣的你可不要錯(cuò)過了哈
    2013-02-02
  • JavaScript 創(chuàng)建對(duì)象

    JavaScript 創(chuàng)建對(duì)象

    JSON方式/對(duì)象直接量 等多種方法。大家可以快速的掌握js對(duì)象的建立。
    2009-07-07
  • JSON.parse 數(shù)據(jù)不完整的解決方法

    JSON.parse 數(shù)據(jù)不完整的解決方法

    本文主要介紹了JSON.parse 數(shù)據(jù)不完整的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • javascript json 新手入門文檔

    javascript json 新手入門文檔

    在異步應(yīng)用程序中發(fā)送和接收信息時(shí),可以選擇以純文本和 XML 作為數(shù)據(jù)格式。掌握 Ajax 的這一期討論另一種有用的數(shù)據(jù)格式 JavaScript Object Notation(JSON),以及如何使用它更輕松地在應(yīng)用程序中移動(dòng)數(shù)據(jù)和對(duì)象。
    2009-12-12
  • js實(shí)現(xiàn)刪除json中指定的元素

    js實(shí)現(xiàn)刪除json中指定的元素

    這篇文章主要介紹了js實(shí)現(xiàn)刪除json中指定的元素,需要的朋友可以參考下
    2020-09-09
  • json 入門基礎(chǔ)教程 推薦

    json 入門基礎(chǔ)教程 推薦

    在異步應(yīng)用程序中發(fā)送和接收信息時(shí),可以選擇以純文本和 XML 作為數(shù)據(jù)格式。掌握 Ajax 的這一期討論另一種有用的數(shù)據(jù)格式 JavaScript Object Notation(JSON),以及如何使用它更輕松地在應(yīng)用程序中移動(dòng)數(shù)據(jù)和對(duì)象。
    2009-10-10
  • 改進(jìn)版通過Json對(duì)象實(shí)現(xiàn)深復(fù)制的方法

    改進(jìn)版通過Json對(duì)象實(shí)現(xiàn)深復(fù)制的方法

    改進(jìn)版通過Json對(duì)象實(shí)現(xiàn)深復(fù)制的方法,需要的朋友可以參考下
    2012-10-10
  • json編寫簡(jiǎn)單一例

    json編寫簡(jiǎn)單一例

    主要是了解一下json的簡(jiǎn)單寫法與應(yīng)用,方便想學(xué)習(xí)json的朋友
    2008-08-08
  • JSON 必知必會(huì) 觀后記

    JSON 必知必會(huì) 觀后記

    這篇文章主要介紹了個(gè)人看了JSON 必知必會(huì)一書的讀后感,此書從各個(gè)方面介紹了json的一些注意事項(xiàng)與優(yōu)缺點(diǎn)。
    2016-10-10
  • Javascript 通過json自動(dòng)生成Dom的代碼

    Javascript 通過json自動(dòng)生成Dom的代碼

    主要還是通過遞歸和迭代來遍歷json成員生成html元素 ,比較好的是num能制定循環(huán)次數(shù)可以少寫很多代碼.具體應(yīng)用看場(chǎng)景了
    2010-04-04

最新評(píng)論