---
name: "Test::JSON"
section: "3pm"
platform: "linux"
package: "libtest-json-perl"
version: "0.11-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::JSON"
---

# Test::JSON(3pm)

Test JSON data

## NAME

Test::JSON - Test JSON data

## VERSION

Version 0.11

## SYNOPSIS

```
 use Test::JSON;
 is_valid_json $json,                 '... json is well formed';
 is_json       $json, $expected_json, '... and it matches what we expected';
```

## EXPORT

- •

  is\_valid\_json

- •

  is\_json

## DESCRIPTION

JavaScript Object Notation (JSON) is a lightweight data interchange format. Test::JSON makes it easy to verify that you have built valid JSON and that it matches your expected output.

See \<http://www.json.org/\> for more information.

## TESTS

### is\_valid\_json

```
 is_valid_json $json, '... json is well formed';
```

Test passes if the string passed is valid JSON.

### is\_json

```
 is_json $json, $expected_json, '... and it matches what we expected';
```

Test passes if the two JSON strings are valid JSON and evaluate to the same data structure.

Test::Differences is used to provide easy diagnostics of why the JSON structures did not match.  For example:

```
   Failed test '... and identical JSON should match'
   in t/10testjson.t at line 14.
 +----+---------------------------+---------------------------+
 | Elt|Got                        |Expected                   |
 +----+---------------------------+---------------------------+
 |   0|{                          |{                          |
 |   1|  bool => '1',             |  bool => '1',             |
 |   2|  description => bless( {  |  description => bless( {  |
 |   3|    value => undef         |    value => undef         |
 |   4|  }, 'JSON::NotString' ),  |  }, 'JSON::NotString' ),  |
 |   5|  id => '1',               |  id => '1',               |
 *   6|  name => 'foo'            |  name => 'fo'             *
 |   7|}                          |}                          |
 +----+---------------------------+---------------------------+
```

## AUTHOR

Curtis "Ovid" Poe, `"<ovid@cpan.org>"`

## BUGS

Please report any bugs or feature requests to `"bug-test-json@rt.cpan.org"`, or through the web interface at \<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-JSON\>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

## SEE ALSO

This test module uses JSON::Any and Test::Differences.

## ACKNOWLEDGEMENTS

The development of this module was sponsored by Kineticode, \<http://www.kineticode.com/\>, the leading provider of services for the Bricolage content management system, \<http://www.bricolage.cc/\>.

Thanks to Makamaka Hannyaharamitu `"makamaka@cpan.org"` for a patch to make this work with JSON 2.0.

Thanks to Stevan Little for suggesting a switch to JSON::Any.  This makes it easier for this module to work with whatever JSON module you have installed.

## COPYRIGHT & LICENSE

Copyright 2005-2007 Curtis "Ovid" Poe, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
