• Stars
    star
    10,762
  • Rank 3,175 (Top 0.07 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created over 12 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A web-based tool to view, edit, format, and validate JSON

JSON Editor

Version Downloads Maintenance License FOSSA Status

JSON Editor is a web-based tool to view, edit, format, and validate JSON. It has various modes such as a tree editor, a code editor, and a plain text editor. The editor can be used as a component in your own web application. It can be loaded as CommonJS module, AMD module, or as a regular javascript file.

The library was originally developed as core component of the popular web application https://jsoneditoronline.org and has been open sourced since then.

Supported browsers: Chrome, Firefox, Safari, Opera, Edge, Internet Explorer 11.

json editor   code editor

Cross browser testing for JSONEditor is generously provided by BrowserStack

BrowserStack

Successor: svelte-jsoneditor

This library jsoneditor has a successor: svelte-jsoneditor. The new editor is not a one-to-one replacement, so there may be reasons to stick with jsoneditor. The main differences between the two are described here.

Features

JSONEditor has various modes, with the following features.

Tree mode

  • Change, add, move, remove, and duplicate fields and values.
  • Sort arrays and objects.
  • Transform JSON using JMESPath queries.
  • Colorized code.
  • Color picker.
  • Search & highlight text in the tree view.
  • Undo and redo all actions.
  • JSON schema validation (powered by ajv).

Code mode

  • Colorized code (powered by Ace).
  • Inspect JSON (powered by Ace).
  • Format and compact JSON.
  • Repair JSON.
  • JSON schema validation (powered by ajv).

Text mode

  • Format and compact JSON.
  • Repair JSON.
  • JSON schema validation (powered by ajv).

Preview mode

  • Handle large JSON documents up to 500 MiB.
  • Transform JSON using JMESPath queries.
  • Format and compact JSON.
  • Repair JSON.
  • JSON schema validation (powered by ajv).

Documentation

Install

with npm (recommended):

npm install jsoneditor

Note that to use JSONEditor in Internet Explorer 11, it is necessary to load a polyfill for Promise in your application.

Alternatively, you can use another JavaScript package manager like https://yarnpkg.com/, or a CDN such as https://cdnjs.com/ or https://www.jsdelivr.com/.

Use

Note that in the following example, you'll have to change the urls jsoneditor/dist/jsoneditor.min.js and jsoneditor/dist/jsoneditor.min.css to match the place where you've downloaded the library, or fill in the URL of the CDN you're using.

<!DOCTYPE HTML>
<html lang="en">
<head>
    <!-- when using the mode "code", it's important to specify charset utf-8 -->
    <meta charset="utf-8">

    <link href="jsoneditor/dist/jsoneditor.min.css" rel="stylesheet" type="text/css">
    <script src="jsoneditor/dist/jsoneditor.min.js"></script>
</head>
<body>
    <div id="jsoneditor" style="width: 400px; height: 400px;"></div>

    <script>
        // create the editor
        const container = document.getElementById("jsoneditor")
        const options = {}
        const editor = new JSONEditor(container, options)

        // set json
        const initialJson = {
            "Array": [1, 2, 3],
            "Boolean": true,
            "Null": null,
            "Number": 123,
            "Object": {"a": "b", "c": "d"},
            "String": "Hello World"
        }
        editor.set(initialJson)

        // get json
        const updatedJson = editor.get()
    </script>
</body>
</html>

Build

The code of the JSON Editor is located in the folder ./src. To build jsoneditor:

  • Install dependencies:

    npm install
    
  • Build JSON Editor:

    npm run build
    

    This will generate the files ./jsoneditor.js, ./jsoneditor.css, and
    minified versions in the dist of the project.

  • To automatically build when a source file has changed:

    npm start
    

    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.

Test

Run unit tests:

npm test

Run code linting (JavaScript Standard Style):

npm run lint

Custom builds

The source code of JSONEditor consists of CommonJS modules. JSONEditor can be bundled in a customized way using a module bundler like browserify or webpack. First, install all dependencies of jsoneditor:

npm install

To create a custom bundle of the source code using browserify:

browserify ./index.js -o ./jsoneditor.custom.js -s JSONEditor

The Ace editor, used in mode code, accounts for about one third of the total size of the library. To exclude the Ace editor from the bundle:

browserify ./index.js -o ./jsoneditor.custom.js -s JSONEditor -x brace -x brace/mode/json -x brace/ext/searchbox

To minify the generated bundle, use uglifyjs:

uglifyjs ./jsoneditor.custom.js -o ./jsoneditor.custom.min.js -m -c

License

jsoneditor is released as open source under the permissive the Apache 2.0 license.

If you are using jsoneditor commercially, there is a social (but no legal) expectation that you help fund its maintenance. Start here.

More Repositories

1

mathjs

An extensive math library for JavaScript and Node.js
JavaScript
14,370
star
2

workerpool

Offload tasks to a pool of workers on node.js and in the browser
JavaScript
1,773
star
3

svelte-jsoneditor

A web-based tool to view, edit, format, repair, query, transform, and validate JSON
TypeScript
642
star
4

lossless-json

Parse JSON without risk of losing numeric information
TypeScript
364
star
5

jsonrepair

Repair invalid JSON documents
TypeScript
209
star
6

ducktype

Flexible data validation using a ducktype interface. For JavaScript and Node.js.
JavaScript
90
star
7

csv42

A small and fast CSV parser with support for nested JSON
TypeScript
89
star
8

typed-function

Runtime type-checking for JavaScript functions
JavaScript
71
star
9

mathjs-expression-parser

Just the expression parser of mathjs
JavaScript
51
star
10

httputil

Easily perform HTTP requests in Java
Java
50
star
11

propagating-hammerjs

Extend hammer.js with event propagation
JavaScript
40
star
12

immutable-json-patch

Immutable JSON patch with support for reverting operations
TypeScript
29
star
13

mount-at-selector

Render React components like a Modal outside the main React app
JavaScript
15
star
14

customerservice

A small demonstration showing the power of CouchDB and AngularJS
JavaScript
12
star
15

table-xxl

Render tables with hundred thousands of rows in a webpage
JavaScript
7
star
16

jsondatastore

JSON document database running on Google Datastore
Java
6
star
17

distributed-app

A framework to run Node.js applications in a distributed way
JavaScript
6
star
18

rws

Reconnecting WebSocket for node.js and the browser
JavaScript
6
star
19

blog

Personal blog
HTML
4
star
20

annotationutil

Get aggregated annotations from a class, its interfaces, and its superclasses
Java
3
star
21

pocomath

A little proof-of-concept for organizing mathjs by module inclusion, avoiding factory functions.
JavaScript
3
star
22

react-hooks-for-classes

An experiment applying the concept of hooks to React class components
TypeScript
2
star
23

biggie

A big number library
TypeScript
2
star
24

mathjs-codemirror

A mathjs editor in CodeMirror
TypeScript
2
star
25

svelte-jsoneditor-vite-dependency-issues

JavaScript
2
star
26

mandelbrot-explorer

A plain JavaScript Mandelbrot explorer
JavaScript
1
star
27

webpack_tree_shaking_issue

Minimum example of webpack 4 not being able to do treeshaking
JavaScript
1
star
28

react-native-mathjs-demo

A simple calculator built with react-native, powered by math.js
JavaScript
1
star
29

femtomath

JavaScript
1
star
30

timeblocks

timeblocks extension for vis.js
JavaScript
1
star
31

csv-benchmark

JavaScript
1
star
32

speqmath-website

Website of speqmath.com
1
star
33

insight

A debug tooling experiment
JavaScript
1
star