2014-06-01 03:01:30 +08:00
# JSON Editor
2012-04-25 15:12:24 +08:00
2017-11-29 16:01:32 +08:00
[![Version ](https://img.shields.io/npm/v/jsoneditor.svg )](https://www.npmjs.com/package/jsoneditor)
[![Downloads ](https://img.shields.io/npm/dm/jsoneditor.svg )](https://www.npmjs.com/package/jsoneditor)
2019-01-05 22:21:54 +08:00
![Maintenance ](https://img.shields.io/maintenance/yes/2019.svg )
2017-11-29 16:01:32 +08:00
[![License ](https://img.shields.io/github/license/josdejong/jsoneditor.svg )](https://github.com/josdejong/jsoneditor/blob/master/LICENSE)
2019-06-23 02:37:09 +08:00
[![FOSSA Status ](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjosdejong%2Fjsoneditor.svg?type=shield )](https://app.fossa.io/projects/git%2Bgithub.com%2Fjosdejong%2Fjsoneditor?ref=badge_shield) [![Greenkeeper badge ](https://badges.greenkeeper.io/josdejong/jsoneditor.svg )](https://greenkeeper.io/)
2017-11-29 16:01:32 +08:00
2016-01-15 04:26:39 +08:00
JSON Editor is a web-based tool to view, edit, format, and validate JSON.
2013-05-26 04:16:53 +08:00
It has various modes such as a tree editor, a code editor, and a plain text
editor.
2012-08-21 03:52:36 +08:00
2013-05-26 04:16:53 +08:00
The editor can be used as a component in your own web application. The library
can be loaded as CommonJS module, AMD module, or as a regular javascript file.
2012-08-21 03:52:36 +08:00
2018-07-11 16:54:08 +08:00
Supported browsers: Chrome, Firefox, Safari, Opera, Edge, Internet Explorer 11.
2013-11-15 21:56:12 +08:00
2017-07-12 16:09:55 +08:00
< img alt = "json editor" src = "https://raw.github.com/josdejong/jsoneditor/master/misc/jsoneditor.png" > < img alt = "code editor" src = "https://raw.github.com/josdejong/jsoneditor/master/misc/codeeditor.png" >
2017-04-14 20:34:31 +08:00
Cross browser testing for JSONEditor is generously provided by < a href = "https://www.browserstack.com" target = "_blank" > BrowserStack< / a >
2017-04-14 20:32:03 +08:00
< a href = "https://www.browserstack.com" target = "_blank" > < img alt = "BrowserStack" src = "https://raw.github.com/josdejong/jsoneditor/master/misc/browserstack.png" > < / a >
2017-04-14 20:06:25 +08:00
2015-02-28 22:23:19 +08:00
## Features
2012-08-21 03:52:36 +08:00
2019-07-24 20:00:39 +08:00
JSONEditor has various modes, with the following features.
### Tree mode
2018-08-22 18:10:15 +08:00
- Change, add, move, remove, and duplicate fields and values.
2013-02-10 22:17:35 +08:00
- Sort arrays and objects.
2018-08-22 18:10:15 +08:00
- Transform JSON using [JMESPath ](http://jmespath.org/ ) queries.
2013-05-26 04:16:53 +08:00
- Colorized code.
2018-08-22 18:10:15 +08:00
- Color picker.
2016-01-12 19:40:23 +08:00
- Search & highlight text in the tree view.
2012-11-04 22:26:05 +08:00
- Undo and redo all actions.
2016-01-12 19:40:23 +08:00
- JSON schema validation (powered by [ajv ](https://github.com/epoberezkin/ajv )).
2013-05-26 04:16:53 +08:00
2019-07-24 20:00:39 +08:00
### Code mode
2016-01-12 19:40:23 +08:00
- Colorized code (powered by [Ace ](https://ace.c9.io )).
- Inspect JSON (powered by [Ace ](https://ace.c9.io )).
2016-01-15 04:10:30 +08:00
- Format and compact JSON.
2018-08-22 18:10:15 +08:00
- Repair JSON.
2016-01-12 22:18:11 +08:00
- JSON schema validation (powered by [ajv ](https://github.com/epoberezkin/ajv )).
2013-05-26 04:16:53 +08:00
2019-07-24 20:00:39 +08:00
### Text mode
2013-05-26 04:16:53 +08:00
- Format and compact JSON.
2018-08-22 18:10:15 +08:00
- Repair JSON.
2016-01-12 22:18:11 +08:00
- JSON schema validation (powered by [ajv ](https://github.com/epoberezkin/ajv )).
2012-08-21 03:52:36 +08:00
2019-07-24 20:00:39 +08:00
### Preview mode
- Handle large JSON documents up to 500 MiB.
- Transform JSON using [JMESPath ](http://jmespath.org/ ) queries.
- Format and compact JSON.
- Repair JSON.
- JSON schema validation (powered by [ajv ](https://github.com/epoberezkin/ajv )).
2012-08-21 03:52:36 +08:00
2015-02-28 22:23:19 +08:00
## Documentation
2013-05-04 19:17:24 +08:00
2014-05-31 03:28:40 +08:00
- Documentation:
- [API ](https://github.com/josdejong/jsoneditor/tree/master/docs/api.md )
- [Usage ](https://github.com/josdejong/jsoneditor/tree/master/docs/usage.md )
2014-07-29 03:00:41 +08:00
- [Shortcut keys ](https://github.com/josdejong/jsoneditor/tree/master/docs/shortcut_keys.md )
2013-05-04 19:17:24 +08:00
- [Examples ](https://github.com/josdejong/jsoneditor/tree/master/examples )
- [Source ](https://github.com/josdejong/jsoneditor )
- [History ](https://github.com/josdejong/jsoneditor/blob/master/HISTORY.md )
2015-02-28 22:23:19 +08:00
## Install
2013-05-04 04:55:15 +08:00
2015-12-28 19:13:35 +08:00
with npm (recommended):
2013-05-04 04:55:15 +08:00
npm install jsoneditor
2018-09-07 02:18:31 +08:00
> Note that to use JSONEditor in Internet Explorer 11, it is necessary
> to load a polyfill for `Promise` in your application.
2013-05-04 18:09:14 +08:00
2015-02-28 22:23:19 +08:00
## Use
2013-05-04 18:09:14 +08:00
```html
<!DOCTYPE HTML>
< html >
< head >
2015-05-15 03:25:10 +08:00
<!-- when using the mode "code", it's important to specify charset utf - 8 -->
< meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" >
2015-03-01 03:47:23 +08:00
< link href = "jsoneditor/dist/jsoneditor.min.css" rel = "stylesheet" type = "text/css" >
< script src = "jsoneditor/dist/jsoneditor.min.js" > < / script >
2013-05-04 18:09:14 +08:00
< / head >
< body >
< div id = "jsoneditor" style = "width: 400px; height: 400px;" > < / div >
2015-02-28 04:54:04 +08:00
< script >
2013-05-04 18:09:14 +08:00
// create the editor
var container = document.getElementById("jsoneditor");
2016-01-12 19:40:23 +08:00
var options = {};
var editor = new JSONEditor(container, options);
2013-05-04 18:09:14 +08:00
// set json
var json = {
"Array": [1, 2, 3],
"Boolean": true,
"Null": null,
"Number": 123,
"Object": {"a": "b", "c": "d"},
"String": "Hello World"
};
editor.set(json);
// get json
var json = editor.get();
< / script >
< / body >
< / html >
```
2015-02-28 22:23:19 +08:00
## Build
2013-02-10 22:17:35 +08:00
2014-05-30 16:33:11 +08:00
The code of the JSON Editor is located in the folder `./src` . To build
2014-05-30 00:35:39 +08:00
jsoneditor:
2013-02-10 22:17:35 +08:00
2014-05-30 00:35:39 +08:00
- Install dependencies:
2013-02-10 22:17:35 +08:00
2015-03-18 15:56:54 +08:00
```
npm install
```
2014-05-30 00:35:39 +08:00
2014-05-30 16:33:11 +08:00
- Build JSON Editor:
2014-05-30 00:35:39 +08:00
2015-03-18 15:56:54 +08:00
```
npm run build
```
2014-05-30 00:35:39 +08:00
2014-05-30 16:33:11 +08:00
This will generate the files `./jsoneditor.js` , `./jsoneditor.css` , and
2016-01-11 16:49:42 +08:00
minified versions in the dist of the project.
- To automatically build when a source file has changed:
```
npm run watch
```
This will update `./jsoneditor.js` and `./jsoneditor.css` in the dist folder
on every change, but it will **NOT** update the minified versions as that's
an expensive operation.
2014-05-30 00:35:39 +08:00
2015-02-28 05:16:05 +08:00
2015-02-28 22:23:19 +08:00
## Custom builds
2015-02-28 05:16:05 +08:00
2015-03-18 15:56:54 +08:00
The source code of JSONEditor consists of CommonJS modules. JSONEditor can be bundled in a customized way using a module bundler like [browserify ](http://browserify.org/ ) or [webpack ](http://webpack.github.io/ ). First, install all dependencies of jsoneditor:
npm install
2015-03-18 15:57:33 +08:00
To create a custom bundle of the source code using browserify:
2015-02-28 05:16:05 +08:00
2015-03-18 03:25:50 +08:00
browserify ./index.js -o ./jsoneditor.custom.js -s JSONEditor
2015-02-28 22:06:44 +08:00
2018-08-22 18:10:15 +08:00
The Ace editor, used in mode `code` , accounts for about one third of the total
2015-02-28 22:21:01 +08:00
size of the library. To exclude the Ace editor from the bundle:
2015-03-18 03:25:50 +08:00
browserify ./index.js -o ./jsoneditor.custom.js -s JSONEditor -x brace -x brace/mode/json -x brace/ext/searchbox
2015-02-28 22:30:26 +08:00
To minify the generated bundle, use [uglifyjs ](https://github.com/mishoo/UglifyJS2 ):
uglifyjs ./jsoneditor.custom.js -o ./jsoneditor.custom.min.js -m -c
2015-12-31 21:14:24 +08:00