JSON - Schema

ความรู้เกี่ยวกับ XML RML และ ภาษา Markup อื่นๆ

Moderator: mindphp, ผู้ดูแลกระดาน

buay
PHP Super Member
PHP Super Member
โพสต์: 250
ลงทะเบียนเมื่อ: 02/06/2014 9:55 am

JSON - Schema

โพสต์โดย buay » 12/06/2014 10:18 am

ตัวอย่างข้อมูลสินค้า

โค้ด: เลือกทั้งหมด

{
    "id": 1,
    "name": "Door",
    "price": 12.50   
}

เริ่มต้นเขียน JSON-Schema
การกำหนด schema เริ่มต้น จะต้องกำหนดค่าดังนี้

โค้ด: เลือกทั้งหมด

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Product",
    "description": "A product from Acme's catalog",
    "type": "object"
}

$schema : เป็นการระบุ schema
title : ใส่ชื่อเรื่อง
description : อธิบายรายละเอียด
type : ประเภทของข้อมูล(ในที่นี้ข้อมูลเป็นแบบ object)

id คือ ค่าตัวเลข(integer)ที่ระบุสินค้า
ใน JSON Schema สามารถเขียน schema ได้คือ

โค้ด: เลือกทั้งหมด

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Product",
    "description": "A product from Acme's catalog",
    "type": "object",
    "properties": {
        "id": {
            "description": "The unique identifier for a product",
            "type": "integer"
        }
    },
    "required": ["id"]
}

properties : กำหนดค่าประเภทของข้อมูล และค่าต่ำสุด สูงสุด ที่จะใช้ได้ไฟล์ JSON
description : อธิบายรายละเอียด
type : ประเภทของข้อมูล(ในที่นี้ค่าของ id เป็นแบบ interger)
required : การเรียกค่าที่ต้องการ

name คือ ค่า string ที่ไว้กำหนดชื่อของสินค้า
price คือ ค่า number ไว้กำหนดราคาสินค้า ใน JSON schema จึงจำเป็นต้องระบุค่าต่ำสุดของราคาไว้ด้วย(ในที่นี้จะไม่มีสินค้าฟรี หรือ
ราคา 0 บาท จึงจำเป็นต้องกำหนด exclusiveMinimum ไว้ด้วย)

โค้ด: เลือกทั้งหมด

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Product",
    "description": "A product from Acme's catalog",
    "type": "object",
    "properties": {
        "id": {
            "description": "The unique identifier for a product",
            "type": "integer"
        },
        "name": {
            "description": "Name of the product",
            "type": "string"
        },
        "price": {
            "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
        }
    },
    "required": ["id", "name", "price"]
}

minimum : ราคาต่ำสุด
exclusiveMinimum : คือการกำหนดว่าไม่สามารถให้เท่ากับจำนวนของ mininum
required : การเรียกค่าที่ต้องการ

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 2 และ บุคคลทั่วไป 0 ท่าน