Infer the structure of a JSON object and make some Perl 6 class to represent it
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Create Perl6 classes to represent JSON data by some dodgy inference.


Use the script to do it simply:

# Create the module in the directory "foo"

p6-json-infer --uri= --out-dir=foo --class-name=Mixcloud::Show

Or do it in your own code:

use JSON::Infer;

my $obj =
my $ret = $obj.infer(uri => '', class-name => 'Mixcloud::Show');

say $ret.make-class; # Print the class definition


JSON is nearly ubiquitous on the internet, developers love it for making APIs. However the webservices that use it for transfer of data rarely have a machine readable specification that can be turned into code so developers who want to consume these services usually have to make the client definition themselves.

This module aims to provide a way to generate Perl 6 classes that can represent the data from a JSON source. The structure and the types of the data is inferred from a single data item so the accuracy may depend on the consistency of the data.


Assuming you have a working perl6 installation you should be able to install this with panda :

# From the source directory

panda install .

# Remote installation

panda install JSON::Infer

Or with zef :

# From the source directory

zef install .

# Remote installation

zef install JSON::Infer

Other install mechanisms may be become available in the future.


Suggestions/patches are welcomed via github at


This is free software.

Please see the LICENCE file in the distribution for details.

© Jonathan Stowe 2015, 2016