Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JSON Schema and JSONNanny
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yulin Ding
July 25, 2013
Technology
260
0
Share
JSON Schema and JSONNanny
Yulin Ding
July 25, 2013
Other Decks in Technology
See All in Technology
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
410
バイブコーディングで3倍早く⚪⚪を作ってみた
samakada
0
190
PyCon JPに学ぶ『決め方の決め方』: TechLead Conference 2026
terapyon
1
110
CloudTrail を見つめ直してみる
kazzpapa3
1
120
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
470
Chasing Real-Time Observability for CRuby
whitegreen
0
290
AI時代における技術的負債への取り組み
codenote
1
1.8k
Oracle Cloud Infrastructure:2026年4月度サービス・アップデート
oracle4engineer
PRO
0
140
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
140
Google Cloud Next '26 の裏でこっそりリリースされたCloud Number Registry & Cloud Hub コスト分析 を試してみた
hikaru1001
0
110
AI駆動1on1〜AIに自分を育ててもらう〜
yoshiakiyasuda
0
150
Pure Intonation on Browser: Building a Sequencer with Ruby
nagachika
0
250
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
280
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
270
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
350
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
How to Ace a Technical Interview
jacobian
281
24k
Fireside Chat
paigeccino
42
3.9k
Automating Front-end Workflow
addyosmani
1370
200k
My Coaching Mixtape
mlcsv
0
110
The Cult of Friendly URLs
andyhume
79
6.8k
Transcript
JSON Schema and JSONNanny by sodabiscuit
Agenda • JSONNanny出现的前提 • JSON Schema是什么 • JSON Schema的发展历史 •
JSON Schema语法 • JSONNanny是什么 • JSONNanny初步
JSONNanny出现的前提 • 流程的合理性 • ⾃自然语⾔言的准确性 • 重复定义的成本 • 版本化与持续化存储 •
设计与调试⼯工具
流程的合理性 创建⽰示例 本地调试 交付下游 ⽰示例⽂文档废弃 获取线上⽰示例 修改调试 交付下游 ⽰示例⽂文档废弃 创建描述⽂文档
创建⽰示例 交付下游 ⽰示例⽂文档废弃
⾃自然语⾔言的准确性 is_empty可取值0,1 {“is_empty” : 0} products 表⽰示产品列表 {“products”:[]} {“is_empty” :
“0”} {“products”:null}
重复定义的成本 { “name” : “商品名称”, “price” : “200”, “tmall” :
true } { “title” : “商品名称”, “price” : 200, “isTmall” : 1 }
版本化与持续存储 • ⽰示例⽂文档存放在本地 • 说明⽂文档以wiki或cf形式存放 • 多版本的并⾏行 • 迁移与持续开发
设计与调试⼯工具 • 传统编辑器 • 脚本语⾔言(php,python)数据⽣生成器
JSON Schema是什么 此⽂文档类型以JSON数据格式为基础。从当前 应⽤用场景来看,JSON Schema所能做的主要 是对数据形式以及操作⽅方式进⾏行约束,同时 也包括对校验、⽂文档、链接导航、访问控制 的定义。
JSON Schema历史 • 2009.12.5 draft 01 • 2010.3.23 draft 02
• 2010.11.22 draft 03 • 2013.1.31 draft 04
$schema { “$schema” : “http://json-schema.org/draft-03/schema#” } { “$schema” : “http://json-schema.org/draft-04/schema#”
}
type “user” : { “type” : “string” } “user” :
{ “type” : [“null”, “object”] } { “user” : null } { “user” : {“foo” : “bar”} }
title, description “user” : { “type” : “string”, “title” :
“⽤用户名称”, “description” : “更详细的描述” } “user” : “sodabiscuit”
disallow “user” : { “disallow” : null } { “user”
: null } { “user” : {“foo” : “bar”} }
properties { “type”: “object”, “properties” : { “price” : {
“type” : “number” } } } { “price” : 200 }
patternProperties { “type”: “object”, “patternProperties” : { “[a-z0-9]+” : {
“type” : “array” } } } { “9ef84a26d” : [] }
additionalProperties { “type”: “object”, “properties” : { “price” : {
“type” : “number” } }, “additionalProperties” : { “type” : “number” } } { “price” : 200, “discount” : 20 }
required { “type”: “object”, “properties” : { “price” : {
“type” : “number”, “required” : true } } } { “price” : 200 }
items “product_id_list” : { “type” : “array”, “items” : {
“type” : “string” } } { “product_id_list” : [“9ef84a26d”, “ac78dcmd2”] }
additionalItems { “type”: “array”, “items” : [ { “type” :
“boolean” }, { “type” : “number” } ] “additionalItems” : { “type” : “string” } } [true, 1, “foo”, “bar”]
minItems,maxItems,uniqueItems “product_id_list” : { “type” : “array”, “items” : {
“type” : “string” }, “minItems” : 2, “uniqueItems” : true } { “product_id_list” : [“foo”, “bar”] }
minimum,maximum “price” : { “type” : “number”, “minimum” : “1”,
“maximum” : “20” } { “price” : 15 }
exclusiveMinimum,exclusiveMaxi mum “price” : { “type” : “number”, “minimum” :
“1”, “maximum” : “20”, “exclusiveMinimum” : true } { “price” : 2 }
pattern,minLength,maxLength “item_number_id” : { “pattern” : ”[0-9]+”, “minLength” : 3
} { “item_number_id” : 976 }
enum “mall” : { “type” : number, “enum” : [0,1]
} { “mall” : 0 }
extends { “item” : { “type”: “object”, “properties” : {
“price” : { “type” : “number” } } } } { “item” : { “type”: “object”, “properties” : { “discount” : { “type” : “number” } }, “extends” : #/item } }
JSONNanny是什么 • 持续化存储平台 • ⽰示例存储 • 开发与设计⼯工具 • 接⼝口开放
Demo & QA