Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JSON Schema and JSONNanny
Search
Yulin Ding
July 25, 2013
Technology
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JSON Schema and JSONNanny
Yulin Ding
July 25, 2013
Other Decks in Technology
See All in Technology
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
5
1.7k
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
410
背中から、背中へ ー 社外コミュニティで学んだ「雑に背中を押す」という恩送り ー / easygoing encouragement and pay forward to community
naitosatoshi
0
320
顧客価値を追いかけたら、プライシングにたどり着いた
sansantech
PRO
2
1k
BacklogのRAG 今ならこう作る - S3 Vectorsと自前パイプラインの勘所
revsystem
0
140
ビジネス部門からPOを迎えての半年間の進歩と課題
zozotech
PRO
0
150
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
110
Adversary Infrastructure Hunting101
disconinja
0
160
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
6
4.3k
Obsidian Vault Architectures
x5gtrn
PRO
0
160
Microsoft のサポート ライフサイクルを理解する
murachiakira
PRO
0
210
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
300
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Prompt Engineering for Job Search
mfonobong
0
540
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
How to build a perfect <img>
jonoalderson
1
6.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
340
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