Provide a trait (and Attribute role) for JSON Marshal/Unmarshal where the JSON names aren't Perl identifiers
Switch branches/tags
Nothing to show
Clone or download
Latest commit 3fbd191 Nov 4, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/JSON No use version literal in :ver Mar 11, 2016
t Add module and tests Nov 9, 2015
.gitignore Add precomp Mar 11, 2016
.travis.yml Alter travis config to use zef Aug 2, 2017
Changes Add changes Nov 4, 2017
LICENCE rename LICENCE as en_GB May 30, 2016
META6.json Fix licence Apr 22, 2017
README.md No panda Aug 22, 2017

README.md

JSON::Name

Provide a trait (and Attribute role) for JSON Marshal/Unmarshal where the JSON names aren't Perl identifiers

Synopsis

use JSON::Name;

class MyClass {
	# The attribute meta object will have the role JSON::Name::NamedAttribute
   # applied and "666.evil.name" will be stored in it's json-name attribute
   has $.nice-name is json-name('666.evil.name');

}

Description

This is released as a dependency of JSON::Marshal and JSON::Unmarshal in order to save duplication, it is intended to store a separate JSON name for an attribute where the name of the JSON attribute might be changed, either for aesthetic reasons or the name is not a valid Perl identifier. It will of course also be needed in classes thar are going to use JSON::Marshal or JSON::Unmarshal for serialisation/de-serialisation.

Of course it could be used in other modules for a similar purpose.

Installation

Assuming you have a working Rakudo Perl 6 installation you should be able to install this with zef :

# From the source directory

zef install .

# Remote installation

zef install JSON::Name

Support

Suggestions/patches are welcomed via github at

https://github.com/jonathanstowe/JSON-Name

Licence

This is free software.

Please see the LICENCE file in the distribution

© Jonathan Stowe 2015, 2016, 2017