Introducing Doge Serialized Object Notation

object such wow

such members wow members pair

pair , members

pair . members

pair ! members

pair ? members pair string is value array so many

so elements many elements value

value and elements

value also elements value string

number

object

array

yes

no

empty string ""

" chars " chars char

char chars char any-Unicode-character-

except- " -or- \ -or-

control-character

\"

\\

\/

\b

\f





\r

\t

\u six octal-digits number int

int frac

int exp

int frac exp int digit

digit1-7 digits

- digit

- digit1-7 digits frac . digits exp very digits digits digit

digit digits very very

very+

very-

VERY

VERY+

VERY-

DSON (Doge Serialized Object Notation) is a data-interchange format, that is easy to read and write for Shiba Inu dogs. It is easy for machines to parse and generate. It is designed to be as similiar as possible to the DogeScript Programming Language. DSON is a text format that is not language independent but uses conventions that are familiar to a wide variety of japanese dog breeds. These properties make DSON an ideal data-interchange language for everything that involves Shiba Inu intercommunication.

Some examples of the DSON syntax and their JSON counterparts:

such "foo" is "bar". "doge" is "shibe" wow // {"foo": "bar", "doge": "shibe"} such "foo" is such "shiba" is "inu", "doge" is yes wow wow // {"foo": {"shiba": "inu", "doge": true}} such "foo" is so "bar" also "baz" and "fizzbuzz" many wow // {"foo": ["bar", "baz", "fizzbuzz"]} such "foo" is 42, "bar" is 42very3 wow // {"foo": 34, "bar": 17408}

DSON, like JSON, is built on two structures:

A collection of name/value pairs. In various languages, this is realized as an object , record, struct, dictionary, hash table, keyed list, or associative array.

, record, struct, dictionary, hash table, keyed list, or associative array. An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.

These are universal data structures. Virtually all modern dog-proof programming languages support them in one form or another. It makes sense that a data format that is interchangeable with programming languages also be based on these structures. All keywords used by DSON are case-sensitive and must be in lower case.

In DSON, they take on these forms:

An object is an unordered set of name/value pairs. An object begins with such and ends with wow . Each name is followed by is and the name/value pairs are separated by , (comma) or . (dot) or ! or ? .

An array is an ordered collection of values. An array begins with so and ends with many . Values are separated by and or also .

A value can be a string in double quotes, or a number, or yes or no or empty , or an object or an array. These structures can be nested.

A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes. A character is represented as a single character string. A string is very much like a C or Java string.

A number is very much like a C or Java number, except it is presented in the dog-friendly octal base.

Whitespace can be inserted between any pair of tokens. Excepting a few encoding details, that completely describes the language. wow.