---
name: "TM::Serializable::JTM"
section: "3pm"
platform: "linux"
package: "libtm-perl"
version: "1.56-7"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/TM::Serializable::JTM"
---

# TM::Serializable::JTM(3pm)

Topic Maps, trait for reading/writing JSON Topic Map instances.

## NAME

TM::Serializable::JTM - Topic Maps, trait for reading/writing JSON Topic Map instances.

## SYNOPSIS

```
  # NOTE: this is not an end-user package,
  # see TM::Materialized::JTM for common application patterns
  # reading JSON/YAML:
  my $tm=TM->new(...);
  Class::Trait->apply($tm,"TM::Serializable::JTM");
  $tm->deserialize($jsondata);
  # writing JSON/YAML:
  # ...a map $tm is instantiated somehow
  Class::Trait->apply($tm,"TM::Serializable::JTM");
  my $yamltext=$tm->serialize(format=>"yaml");
```

## DESCRIPTION

This trait provides functionality for reading and writing Topic Maps in JTM (JSON Topic Map) format, as defined here: http://www.cerny-online.com/jtm/1.0/ \<http://www.cerny-online.com/jtm/1.0/\>.

Limitations:

- •

  Variants are not supported by TM.

- •

  Reification of basenames, occurrences and roles is not supported by TM.

- •

  Multiple scopes are not supported by TM.

## INTERFACE

### Methods

- **deserialize**

  This method take a string and parses JTM content from it. It will  raise an exception on any parsing error. On success, it will return the map object.

  The method understands one key/value parameter pair:

  - •

    **format** (choices: `"json"`, `"yaml"`)

    This option controls whether the JTM is expected to be in JSON format or in YAML (which is a superset of JSON).

    If no format parameter is given but the TM::Materialized::JTM trait is used, then the format is inherited from there; otherwise the default is `"json"`.

- **serialize**

  This method serializes the map object in JTM notation and returns  the result as a string.

  The method understands one key/value parameter pair:

  - •

    **format** (choices: `"json"`, `"yaml"`)

    This option controls whether the JTM result should be created in the JSON format or in YAML (which is a superset of JSON).

    If no format parameter is given but the TM::Materialized::JTM trait is used, then the format is inherited from there; otherwise the default is `"json"`.

## SEE ALSO

TM, TM::Serializable

## AUTHOR INFORMATION

Copyright 2010, Alexander Zangerl, All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.  http://www.perl.com/perl/misc/Artistic.html
