NAME JSON::T - transform JSON using JsonT SYNOPSIS my $jsont = slurp('foo/bar.js'); my $input = slurp('foo/quux.json'); my $JSONT = JSON::T->new($jsont); print $JSONT->transform($input); DESCRIPTION This module implements JsonT, a language for transforming JSON-like structures, analogous to XSLT in the XML world. JsonT is described at . JsonT is a profile of Javascript; this module uses the pure Perl Javascript implementation JE for Javascript support. An alternative implementation using Mozilla's libjs is provided as JSON::T::SpiderMonkey. This module provides a similar API to XML::Saxon::XSLT2. Constructor "JSON::T->new($code, $name)" Constructs a new JSON::T transformation. $code is the JsonT Javascript code. As a JsonT file can contain multiple (potentially unrelated) transformations, the name of the particular transformation you want to use should also be provided. If $name is omitted, then the name "_main" is assumed. Methods "parameters(param1=>$arg1, param2=>$arg2, ...)" Sets global variables available to the Javascript code. All arguments are treated as strings. "transform($input)" Run the transformation. The input may be a JSON string, a JSON::JOM::Node or a native Perl nested arrayref/hashref structure, in which case it will be stringified using the JSON module's to_json function. The output (return value) will be a string. "transform_structure($input)" Like "transform", but attempts to parse the output as a JSON string and return a native Perl arrayref/hashref structure. This method will fail if the output is not a JSON string. Javascript Execution Environment JSON::T is a profile of Javascript. This module runs scripts via JE. As this is not a browser environment, many global objects familiar to browser Javascript developers are not available. A single global object called "JSON" is provided with methods "stringify" and "parse" compatible with the well-known json2.js library (), and a method "transform(obj,jsont)" that provides a Javascript JsonT implementation. A function "print_to_perl" is provided which prints to Perl's STDOUT stream. BUGS Please report any bugs to . SEE ALSO Specification: . Related modules: JSON, JSON::Path, JSON::GRDDL, JSON::Hyper, JSON::Schema. JOM version: JSON::JOM, JSON::JOM::Plugins::JsonT. Requires: JSON, JE. AUTHOR Toby Inkster . This module is embeds Stefan Goessner's Javascript implementation of JsonT (version 0.9) to do the heavy lifting. COPYRIGHT AND LICENCE Copyright 2006 Stefan Goessner. Copyright 2008-2010 Toby Inkster. Licensed under the Lesser GPL: .