Cara merepresentasikan tipe jumlah/gabungan dalam skema json

Saya mencoba mendokumentasikan penggunaan JSON yang ada menggunakan skema json. Sistem mengizinkan dua kemungkinan berikut untuk salah satu atribut objek.

Salah satu

{
    "tracking_number" : 123
}

Or

{
    "tracking_number" : [ 123, 124, 125 ]
}

Bagaimana saya bisa mengungkapkan ini menggunakan skema json?


person Q the Platypus    schedule 17.02.2016    source sumber


Jawaban (1)


Gunakan anyOf untuk menyatakan bahwa properti harus sesuai dengan skema tertentu.

{
    "type": "object",
    "properties": {
        "tracking_number": {
            "anyOf": [
                { "$ref": "#/definitions/tracking_number" },
                { "type": "array", "items": { "$ref": "#/definitions/tracking_number" }
            ]
    },
    "definitions": {
        "tracking_number": { "type": "integer" }
    }
}
person Jason Desrosiers    schedule 18.02.2016
comment
Ternyata oneOf lebih baik bagi saya dalam situasi ini. Tapi Anda menempatkan saya di jalan yang benar. - person Q the Platypus; 19.02.2016
comment
Kata kunci ini dijelaskan di sini: json-schema.org/understanding-json- skema/referensi/ - person Ari Fordsham; 07.09.2020