色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

golang json schema

夏志豪2年前9瀏覽0評論

golang提供了對json schema的支持,讓我們能夠方便地驗證json數據的合法性。

package main
import (
"fmt"
"github.com/xeipuuv/gojsonschema"
)
func main() {
schemaLoader := gojsonschema.NewReferenceLoader("file://schema.json")  // 加載schema
dataLoader := gojsonschema.NewStringLoader(`{"name":"alex","age":20}`) // 加載要驗證的json數據
result, err := gojsonschema.Validate(schemaLoader, dataLoader)         // 驗證
if err != nil {
panic(err.Error())
}
if result.Valid() {
fmt.Printf("Valid!\n") // 數據合法
} else {
fmt.Printf("Invalid!\n") // 數據不合法
for _, desc := range result.Errors() {
fmt.Printf("%s\n", desc)
}
}
}

上面的代碼演示了如何使用gojsonschema驗證json數據的合法性。首先使用NewReferenceLoader加載json schema,然后使用NewStringLoader加載要驗證的json數據。調用gojsonschema.Validate進行驗證,如果返回的result對象是Valid,則說明數據合法,否則會打印出所有不合法的信息。

在schema.json中定義了一個對象,包含了name和age兩個屬性。如果要驗證的json數據不符合這個schema,則會提示數據不合法。

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "number"}
}
}

以上就是golang中使用json schema進行數據驗證的簡單例子。