Skip to content

abodelot/jquery.json-viewer

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

jQuery json-viewer

npm npm npm workflow

json-viewer is a jQuery plugin for easily displaying JSON objects by transforming them into HTML.

Features:

  • Syntax highlighting
  • Collapse and expand child nodes on click
  • Clickable links
  • Easily readable and minimal DOM structure
  • Optional support for libraries supporting big numbers

Check out the demo page!

Install

With npm:

npm install jquery.json-viewer

Make sure jQuery is already included. Then import jquery.json-viewer.js and jquery.json-viewer.css in your HTML document:

<head>
  <script src="node_modules/jquery.json-viewer/json-viewer/jquery.json-viewer.js"></script>
  <link href="node_modules/jquery.json-viewer/json-viewer/jquery.json-viewer.css" type="text/css" rel="stylesheet">
</head>

You can also simply copy json-viewer/jquery.json-viewer.js and json-viewer/jquery.json-viewer.css files from this git repository into your project.

Usage

Call the jsonViewer() method on target element and pass your JSON data in argument:

<pre id="json-renderer"></pre>
var data = {
  "foobar": "foobaz"
};
$('#json-renderer').jsonViewer(data);

Options

The jsonViewer method accepts an optional config object as a second argument. The supported options are:

  • collapsed (boolean, default: false): all nodes are collapsed at html generation.
  • rootCollapsable (boolean, default: true): allow root element to be collasped.
  • withQuotes (boolean, default: false): all JSON keys are surrounded with double quotation marks ({"foobar": 1} instead of {foobar: 1}).
  • withLinks (boolean, default: true): all values that are valid links will be clickable, if false they will only be strings.
  • bigNumbers (boolean, default: false): support different libraries for big numbers, if true display the real number only, false shows object containing big number with all fields instead of number only.

Example:

$('#json-renderer').jsonViewer(data, {collapsed: true, withQuotes: true, withLinks: false});

Big number support

Enabling bigNumbers the json object visible will show the number stored inside the object only and does not display all fields.

Example Object using Decimal.js - other libraries are similar:

var Decimal = require('decimal.js');
var data = { "x": new Decimal(123) };

$('#json-renderer').jsonViewer(data, {bigNumbers: false});

// {
//   "x": {
//        "constructor": ,
//        "s": 1,
//        "e": 2,
//        "d": [
//          123
//        ]
//   }
// }

$('#json-renderer').jsonViewer(data, {bigNumbers: true});

// {
//   "x": 123
// }

The following libraries are supported:

About