├── .gitignore ├── Readme ├── okjson.rb ├── pre-commit.sh ├── rubies ├── t ├── encode-badutf8.rb ├── encode-badutf8.rb.exp ├── encode-esc.rb ├── encode-esc.rb.exp ├── encode-int.rb ├── encode-int.rb.exp ├── encode-obj.rb ├── encode-obj.rb.exp ├── encode-utf8.rb ├── encode-utf8.rb.exp ├── err-key.rb ├── err-naninf.rb ├── err-other.rb ├── err-root.rb ├── err-symbol.rb ├── invalid-key.json ├── invalid-uescape.json ├── invalid1.json ├── invalid10.json ├── invalid11.json ├── invalid12.json ├── invalid13.json ├── invalid14.json ├── invalid15.json ├── invalid16.json ├── invalid17.json ├── invalid19.json ├── invalid2.json ├── invalid20.json ├── invalid21.json ├── invalid22.json ├── invalid23.json ├── invalid24.json ├── invalid25.json ├── invalid26.json ├── invalid27.json ├── invalid28.json ├── invalid3.json ├── invalid4.json ├── invalid5.json ├── invalid6.json ├── invalid7.json ├── invalid8.json ├── invalid9.json ├── valid-0.json ├── valid-0.json.exp ├── valid-1.json ├── valid-1.json.exp ├── valid-alnum.json ├── valid-alnum.json.exp ├── valid-array-deep.json ├── valid-array-deep.json.exp ├── valid-array-empty.json ├── valid-array-empty.json.exp ├── valid-array-single.json ├── valid-array-single.json.exp ├── valid-backslash.json ├── valid-backslash.json.exp ├── valid-bignum.json ├── valid-bignum.json.exp ├── valid-comment.json ├── valid-comment.json.exp ├── valid-comment2.json ├── valid-comment2.json.exp ├── valid-compact.json ├── valid-compact.json.exp ├── valid-e-leading-zero.json ├── valid-e-leading-zero.json.exp ├── valid-escape.json ├── valid-escape.json.exp ├── valid-false.json ├── valid-false.json.exp ├── valid-frac-E-plus.json ├── valid-frac-E-plus.json.exp ├── valid-frac-e-minus.json ├── valid-frac-e-minus.json.exp ├── valid-frac.json ├── valid-frac.json.exp ├── valid-hex.json ├── valid-hex.json.exp ├── valid-integer.json ├── valid-integer.json.exp ├── valid-json.json ├── valid-json.json.exp ├── valid-key.json ├── valid-key.json.exp ├── valid-negative-e.json ├── valid-negative-e.json.exp ├── valid-null.json ├── valid-null.json.exp ├── valid-object-empty.json ├── valid-object-empty.json.exp ├── valid-object-single.json ├── valid-object-single.json.exp ├── valid-punc.json ├── valid-punc.json.exp ├── valid-quote.json ├── valid-quote.json.exp ├── valid-quotes.json ├── valid-quotes.json.exp ├── valid-slash.json ├── valid-slash.json.exp ├── valid-space.json ├── valid-space.json.exp ├── valid-spaced.json ├── valid-spaced.json.exp ├── valid-spaced2.json ├── valid-spaced2.json.exp ├── valid-true.json ├── valid-true.json.exp ├── valid-url.json └── valid-url.json.exp ├── test └── tested-on /.gitignore: -------------------------------------------------------------------------------- 1 | *.rbc 2 | .rbx 3 | -------------------------------------------------------------------------------- /Readme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/Readme -------------------------------------------------------------------------------- /okjson.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/okjson.rb -------------------------------------------------------------------------------- /pre-commit.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/pre-commit.sh -------------------------------------------------------------------------------- /rubies: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/rubies -------------------------------------------------------------------------------- /t/encode-badutf8.rb: -------------------------------------------------------------------------------- 1 | ["\x82\xAC\xEF"] 2 | -------------------------------------------------------------------------------- /t/encode-badutf8.rb.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/encode-badutf8.rb.exp -------------------------------------------------------------------------------- /t/encode-esc.rb: -------------------------------------------------------------------------------- 1 | ["\e"] 2 | -------------------------------------------------------------------------------- /t/encode-esc.rb.exp: -------------------------------------------------------------------------------- 1 | ["\u001b"] 2 | -------------------------------------------------------------------------------- /t/encode-int.rb: -------------------------------------------------------------------------------- 1 | [123] -------------------------------------------------------------------------------- /t/encode-int.rb.exp: -------------------------------------------------------------------------------- 1 | [123] 2 | -------------------------------------------------------------------------------- /t/encode-obj.rb: -------------------------------------------------------------------------------- 1 | {"a" => 1} -------------------------------------------------------------------------------- /t/encode-obj.rb.exp: -------------------------------------------------------------------------------- 1 | {"a":1} 2 | -------------------------------------------------------------------------------- /t/encode-utf8.rb: -------------------------------------------------------------------------------- 1 | ["á$¢€園𝄞"] 2 | -------------------------------------------------------------------------------- /t/encode-utf8.rb.exp: -------------------------------------------------------------------------------- 1 | ["á$¢€園𝄞"] 2 | -------------------------------------------------------------------------------- /t/err-key.rb: -------------------------------------------------------------------------------- 1 | {1 => 1} -------------------------------------------------------------------------------- /t/err-naninf.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/err-naninf.rb -------------------------------------------------------------------------------- /t/err-other.rb: -------------------------------------------------------------------------------- 1 | [//] -------------------------------------------------------------------------------- /t/err-root.rb: -------------------------------------------------------------------------------- 1 | "a" -------------------------------------------------------------------------------- /t/err-symbol.rb: -------------------------------------------------------------------------------- 1 | [:s] -------------------------------------------------------------------------------- /t/invalid-key.json: -------------------------------------------------------------------------------- 1 | {3: "invalid key"} 2 | -------------------------------------------------------------------------------- /t/invalid-uescape.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/invalid-uescape.json -------------------------------------------------------------------------------- /t/invalid1.json: -------------------------------------------------------------------------------- 1 | "A JSON payload should be an object or array, not a string." -------------------------------------------------------------------------------- /t/invalid10.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/invalid10.json -------------------------------------------------------------------------------- /t/invalid11.json: -------------------------------------------------------------------------------- 1 | {"Illegal expression": 1 + 2} -------------------------------------------------------------------------------- /t/invalid12.json: -------------------------------------------------------------------------------- 1 | {"Illegal invocation": alert()} -------------------------------------------------------------------------------- /t/invalid13.json: -------------------------------------------------------------------------------- 1 | {"Numbers cannot have leading zeroes": 013} -------------------------------------------------------------------------------- /t/invalid14.json: -------------------------------------------------------------------------------- 1 | {"Numbers cannot be hex": 0x14} -------------------------------------------------------------------------------- /t/invalid15.json: -------------------------------------------------------------------------------- 1 | ["Illegal backslash escape: \x15"] -------------------------------------------------------------------------------- /t/invalid16.json: -------------------------------------------------------------------------------- 1 | ["Illegal backslash escape: \'"] -------------------------------------------------------------------------------- /t/invalid17.json: -------------------------------------------------------------------------------- 1 | ["Illegal backslash escape: \017"] -------------------------------------------------------------------------------- /t/invalid19.json: -------------------------------------------------------------------------------- 1 | {"Missing colon" null} -------------------------------------------------------------------------------- /t/invalid2.json: -------------------------------------------------------------------------------- 1 | ["Unclosed array" -------------------------------------------------------------------------------- /t/invalid20.json: -------------------------------------------------------------------------------- 1 | {"Double colon":: null} -------------------------------------------------------------------------------- /t/invalid21.json: -------------------------------------------------------------------------------- 1 | {"Comma instead of colon", null} -------------------------------------------------------------------------------- /t/invalid22.json: -------------------------------------------------------------------------------- 1 | ["Colon instead of comma": false] -------------------------------------------------------------------------------- /t/invalid23.json: -------------------------------------------------------------------------------- 1 | ["Bad value", truth] -------------------------------------------------------------------------------- /t/invalid24.json: -------------------------------------------------------------------------------- 1 | ['single quote'] -------------------------------------------------------------------------------- /t/invalid25.json: -------------------------------------------------------------------------------- 1 | ["tab character in string "] 2 | -------------------------------------------------------------------------------- /t/invalid26.json: -------------------------------------------------------------------------------- 1 | ["tab\ character\ in\ string\ "] 2 | -------------------------------------------------------------------------------- /t/invalid27.json: -------------------------------------------------------------------------------- 1 | ["line 2 | break"] -------------------------------------------------------------------------------- /t/invalid28.json: -------------------------------------------------------------------------------- 1 | ["line\ 2 | break"] -------------------------------------------------------------------------------- /t/invalid3.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/invalid3.json -------------------------------------------------------------------------------- /t/invalid4.json: -------------------------------------------------------------------------------- 1 | ["extra comma",] -------------------------------------------------------------------------------- /t/invalid5.json: -------------------------------------------------------------------------------- 1 | ["double extra comma",,] -------------------------------------------------------------------------------- /t/invalid6.json: -------------------------------------------------------------------------------- 1 | [ , "<-- missing value"] -------------------------------------------------------------------------------- /t/invalid7.json: -------------------------------------------------------------------------------- 1 | ["Comma after the close"], -------------------------------------------------------------------------------- /t/invalid8.json: -------------------------------------------------------------------------------- 1 | ["Extra close"]] -------------------------------------------------------------------------------- /t/invalid9.json: -------------------------------------------------------------------------------- 1 | {"Extra comma": true,} -------------------------------------------------------------------------------- /t/valid-0.json: -------------------------------------------------------------------------------- 1 | [0] 2 | -------------------------------------------------------------------------------- /t/valid-0.json.exp: -------------------------------------------------------------------------------- 1 | [0] 2 | -------------------------------------------------------------------------------- /t/valid-1.json: -------------------------------------------------------------------------------- 1 | [1] 2 | -------------------------------------------------------------------------------- /t/valid-1.json.exp: -------------------------------------------------------------------------------- 1 | [1] 2 | -------------------------------------------------------------------------------- /t/valid-alnum.json: -------------------------------------------------------------------------------- 1 | ["abcdefghijklmnopqrstuvwyzABCDEFGHIJKLMNOPQRSTUVWYZ0123456789"] 2 | -------------------------------------------------------------------------------- /t/valid-alnum.json.exp: -------------------------------------------------------------------------------- 1 | ["abcdefghijklmnopqrstuvwyzABCDEFGHIJKLMNOPQRSTUVWYZ0123456789"] 2 | -------------------------------------------------------------------------------- /t/valid-array-deep.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-array-deep.json -------------------------------------------------------------------------------- /t/valid-array-deep.json.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-array-deep.json.exp -------------------------------------------------------------------------------- /t/valid-array-empty.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /t/valid-array-empty.json.exp: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /t/valid-array-single.json: -------------------------------------------------------------------------------- 1 | ["a"] 2 | -------------------------------------------------------------------------------- /t/valid-array-single.json.exp: -------------------------------------------------------------------------------- 1 | ["a"] 2 | -------------------------------------------------------------------------------- /t/valid-backslash.json: -------------------------------------------------------------------------------- 1 | ["\\"] 2 | -------------------------------------------------------------------------------- /t/valid-backslash.json.exp: -------------------------------------------------------------------------------- 1 | ["\\"] 2 | -------------------------------------------------------------------------------- /t/valid-bignum.json: -------------------------------------------------------------------------------- 1 | [23456789012E666] 2 | -------------------------------------------------------------------------------- /t/valid-bignum.json.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-bignum.json.exp -------------------------------------------------------------------------------- /t/valid-comment.json: -------------------------------------------------------------------------------- 1 | ["// /* */"] 2 | -------------------------------------------------------------------------------- /t/valid-comment2.json.exp: -------------------------------------------------------------------------------- 1 | ["# -- --> */"] 2 | -------------------------------------------------------------------------------- /t/valid-compact.json: -------------------------------------------------------------------------------- 1 | [1,2,3,4,5,6,7] 2 | -------------------------------------------------------------------------------- /t/valid-compact.json.exp: -------------------------------------------------------------------------------- 1 | [1,2,3,4,5,6,7] 2 | -------------------------------------------------------------------------------- /t/valid-e-leading-zero.json: -------------------------------------------------------------------------------- 1 | [123e090] -------------------------------------------------------------------------------- /t/valid-e-leading-zero.json.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-e-leading-zero.json.exp -------------------------------------------------------------------------------- /t/valid-escape.json: -------------------------------------------------------------------------------- 1 | ["\b\f\n\r\t"] 2 | -------------------------------------------------------------------------------- /t/valid-escape.json.exp: -------------------------------------------------------------------------------- 1 | ["\b\f\n\r\t"] 2 | -------------------------------------------------------------------------------- /t/valid-false.json: -------------------------------------------------------------------------------- 1 | [false] 2 | -------------------------------------------------------------------------------- /t/valid-false.json.exp: -------------------------------------------------------------------------------- 1 | [false] 2 | -------------------------------------------------------------------------------- /t/valid-frac-E-plus.json: -------------------------------------------------------------------------------- 1 | [1.23456789E+34] 2 | -------------------------------------------------------------------------------- /t/valid-frac-E-plus.json.exp: -------------------------------------------------------------------------------- 1 | [1.23456789e+34] 2 | -------------------------------------------------------------------------------- /t/valid-frac-e-minus.json: -------------------------------------------------------------------------------- 1 | [0.123456789e-12] -------------------------------------------------------------------------------- /t/valid-frac-e-minus.json.exp: -------------------------------------------------------------------------------- 1 | [1.23456789e-13] 2 | -------------------------------------------------------------------------------- /t/valid-frac.json: -------------------------------------------------------------------------------- 1 | [-9876.543210] 2 | -------------------------------------------------------------------------------- /t/valid-frac.json.exp: -------------------------------------------------------------------------------- 1 | [-9876.54321] 2 | -------------------------------------------------------------------------------- /t/valid-hex.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-hex.json -------------------------------------------------------------------------------- /t/valid-hex.json.exp: -------------------------------------------------------------------------------- 1 | ["$¢€園𝄞"] 2 | -------------------------------------------------------------------------------- /t/valid-integer.json: -------------------------------------------------------------------------------- 1 | [1234567890] 2 | -------------------------------------------------------------------------------- /t/valid-integer.json.exp: -------------------------------------------------------------------------------- 1 | [1234567890] 2 | -------------------------------------------------------------------------------- /t/valid-json.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-json.json -------------------------------------------------------------------------------- /t/valid-json.json.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-json.json.exp -------------------------------------------------------------------------------- /t/valid-key.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-key.json -------------------------------------------------------------------------------- /t/valid-key.json.exp: -------------------------------------------------------------------------------- 1 | {"/\\\"쫾몾ꮘﳞ볚\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?":"A key can be any string"} 2 | -------------------------------------------------------------------------------- /t/valid-negative-e.json: -------------------------------------------------------------------------------- 1 | [-1e10] 2 | -------------------------------------------------------------------------------- /t/valid-negative-e.json.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-negative-e.json.exp -------------------------------------------------------------------------------- /t/valid-null.json: -------------------------------------------------------------------------------- 1 | [null] 2 | -------------------------------------------------------------------------------- /t/valid-null.json.exp: -------------------------------------------------------------------------------- 1 | [null] 2 | -------------------------------------------------------------------------------- /t/valid-object-empty.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /t/valid-object-empty.json.exp: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /t/valid-object-single.json: -------------------------------------------------------------------------------- 1 | {"a":"b"} 2 | -------------------------------------------------------------------------------- /t/valid-object-single.json.exp: -------------------------------------------------------------------------------- 1 | {"a":"b"} 2 | -------------------------------------------------------------------------------- /t/valid-punc.json: -------------------------------------------------------------------------------- 1 | ["`1~!@#$%^&*()_+-={':[,]}|;.?"] 2 | -------------------------------------------------------------------------------- /t/valid-punc.json.exp: -------------------------------------------------------------------------------- 1 | ["`1~!@#$%^&*()_+-={':[,]}|;.?"] 2 | -------------------------------------------------------------------------------- /t/valid-quote.json: -------------------------------------------------------------------------------- 1 | ["\""] 2 | -------------------------------------------------------------------------------- /t/valid-quote.json.exp: -------------------------------------------------------------------------------- 1 | ["\""] 2 | -------------------------------------------------------------------------------- /t/valid-quotes.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-quotes.json -------------------------------------------------------------------------------- /t/valid-quotes.json.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-quotes.json.exp -------------------------------------------------------------------------------- /t/valid-slash.json: -------------------------------------------------------------------------------- 1 | ["\/"] 2 | -------------------------------------------------------------------------------- /t/valid-slash.json.exp: -------------------------------------------------------------------------------- 1 | ["/"] 2 | -------------------------------------------------------------------------------- /t/valid-space.json: -------------------------------------------------------------------------------- 1 | [" "] 2 | -------------------------------------------------------------------------------- /t/valid-space.json.exp: -------------------------------------------------------------------------------- 1 | [" "] 2 | -------------------------------------------------------------------------------- /t/valid-spaced.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-spaced.json -------------------------------------------------------------------------------- /t/valid-spaced.json.exp: -------------------------------------------------------------------------------- 1 | {" s p a c e d ":[1,2,3,4,5,6,7]} 2 | -------------------------------------------------------------------------------- /t/valid-spaced2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/t/valid-spaced2.json -------------------------------------------------------------------------------- /t/valid-spaced2.json.exp: -------------------------------------------------------------------------------- 1 | [{"a":"b"},0.5,98.6,99.44,1066,"rosebud"] 2 | -------------------------------------------------------------------------------- /t/valid-true.json: -------------------------------------------------------------------------------- 1 | [true] 2 | -------------------------------------------------------------------------------- /t/valid-true.json.exp: -------------------------------------------------------------------------------- 1 | [true] 2 | -------------------------------------------------------------------------------- /t/valid-url.json: -------------------------------------------------------------------------------- 1 | ["http://www.JSON.org/"] 2 | -------------------------------------------------------------------------------- /t/valid-url.json.exp: -------------------------------------------------------------------------------- 1 | ["http://www.JSON.org/"] 2 | -------------------------------------------------------------------------------- /test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/test -------------------------------------------------------------------------------- /tested-on: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kr/okjson/HEAD/tested-on --------------------------------------------------------------------------------