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!
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.
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);
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, iffalse
they will only be strings.bigNumbers
(boolean, default:false
): support different libraries for big numbers, iftrue
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});
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:
- Decimal.js: https://github.com/MikeMcl/decimal.js/
- Decimal.js-light: https://github.com/MikeMcl/decimal.js-light/
- Big.js: https://github.com/MikeMcl/big.js/
- BigNumber.js: https://github.com/MikeMcl/bignumber.js/
- Lossless-JSON: https://github.com/josdejong/lossless-json
- Author: Alexandre Bodelot
- License: MIT License