Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

89 lines (60 sloc) 2.335 kB
JSONY - Relaxed JSON with a little bit of YAML
use JSONY;
my $data = JSONY->new->load($jsony_string);
JSONY is a data language that is simlar to JSON, just more chill. All
valid JSON is also valid JSONY (and represents the same thing when
loaded), but JSONY lets you omit a lot of the syntax that makes JSON a
pain to write.
JSONY has one object method: "load". You pass it a JSONY string and it
returns the loaded Perl data object.
Here is some examples of JSONY followed by equivalent JSON:
Words don't need quotes. A list of things is an array:
foo bar baz
[ "foo", "bar", "baz" ]
Strings with spaces can use single or double quotes:
'foo bar' # <= This is (a comment indicating) a string
# More commenting
"baz boom "
[ "foo bar ", "baz boom " ]
Top level hashes can be ':' separated pairs or use curlies. Sub hashes
require curlies.
foo: { bar baz }
num: -1.2e3
{ "foo": { "bar": "baz" }, "num": -1.2e3 }
Top level arrays can use '- ' at the start of lines. Those arrays go the
end of line. Lines can be continued using a trailing comma. Sub arrays
require square brackets.
- array of 4 scalars
- array with [ sub
array { of
things }]
- array of 7 things on,
two lines
[ "array", "of", 4, "scalars" ],
[ "array", "with", [ "sub", "array" { "of": "things" } ] ],
[ "array", "of", 7, "things", "on", "two", "lines" ]
More soon...
NOTE: You may want to look at the tests (especially "t/load.t") to see
the full abilities of JSONY.
JSONY is mst's idea, and ingy's Pegex based implementation. The language
is just a baby, and will change a lot, or may go away entirely.
Development people are currently working on this in "#jsony" in Please drop by. coming soon.
Ingy döt Net (ingy) <>
Matt S. Trout (mst) <>
Copyright (c) 2012, 2013 Ingy döt Net
This library is free software and may be distributed under the same
terms as perl itself.
Jump to Line
Something went wrong with that request. Please try again.