| [ |
| { |
| "description": "validation of JSON-pointers (JSON String Representation)", |
| "schema": { |
| "$schema": "https://json-schema.org/v1", |
| "format": "json-pointer" |
| }, |
| "tests": [ |
| { |
| "description": "all string formats ignore integers", |
| "data": 12, |
| "valid": true |
| }, |
| { |
| "description": "all string formats ignore floats", |
| "data": 13.7, |
| "valid": true |
| }, |
| { |
| "description": "all string formats ignore objects", |
| "data": {}, |
| "valid": true |
| }, |
| { |
| "description": "all string formats ignore arrays", |
| "data": [], |
| "valid": true |
| }, |
| { |
| "description": "all string formats ignore booleans", |
| "data": false, |
| "valid": true |
| }, |
| { |
| "description": "all string formats ignore nulls", |
| "data": null, |
| "valid": true |
| }, |
| { |
| "description": "a valid JSON-pointer", |
| "data": "/foo/bar~0/baz~1/%a", |
| "valid": true |
| }, |
| { |
| "description": "not a valid JSON-pointer (~ not escaped)", |
| "data": "/foo/bar~", |
| "valid": false |
| }, |
| { |
| "description": "valid JSON-pointer with empty segment", |
| "data": "/foo//bar", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer with the last empty segment", |
| "data": "/foo/bar/", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #1", |
| "data": "", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #2", |
| "data": "/foo", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #3", |
| "data": "/foo/0", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #4", |
| "data": "/", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #5", |
| "data": "/a~1b", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #6", |
| "data": "/c%d", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #7", |
| "data": "/e^f", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #8", |
| "data": "/g|h", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #9", |
| "data": "/i\\j", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #10", |
| "data": "/k\"l", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #11", |
| "data": "/ ", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer as stated in RFC 6901 #12", |
| "data": "/m~0n", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer used adding to the last array position", |
| "data": "/foo/-", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer (- used as object member name)", |
| "data": "/foo/-/bar", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer (multiple escaped characters)", |
| "data": "/~1~0~0~1~1", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer (escaped with fraction part) #1", |
| "data": "/~1.1", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer (escaped with fraction part) #2", |
| "data": "/~0.1", |
| "valid": true |
| }, |
| { |
| "description": "not a valid JSON-pointer (URI Fragment Identifier) #1", |
| "data": "#", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (URI Fragment Identifier) #2", |
| "data": "#/", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (URI Fragment Identifier) #3", |
| "data": "#a", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (some escaped, but not all) #1", |
| "data": "/~0~", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (some escaped, but not all) #2", |
| "data": "/~0/~", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (wrong escape character) #1", |
| "data": "/~2", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (wrong escape character) #2", |
| "data": "/~-1", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (multiple characters not escaped)", |
| "data": "/~~", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1", |
| "data": "a", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2", |
| "data": "0", |
| "valid": false |
| }, |
| { |
| "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3", |
| "data": "a/a", |
| "valid": false |
| }, |
| { |
| "description": "valid JSON-pointer (Unicode characters allowed by RFC 6901)", |
| "data": "/foo/bar/😎", |
| "valid": true |
| }, |
| { |
| "description": "valid JSON-pointer (control characters allowed after JSON unescaping)", |
| "data": "/foo\u0000bar\n\tbaz", |
| "valid": true |
| } |
| ] |
| } |
| ] |