# \[Enhancement\] JSON Node - Add JSON Editor to node

**URL:** <https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575>\
**Category:** Core Development\
**Created:** [26 August 2018 10:17 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575 "2018-08-26T10:17:37Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![tmdoit](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tmdoit/32/18441_2.png) [@tmdoit](https://discourse.nodered.org/u/tmdoit)\
**Post date:** [26 August 2018 10:17 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575/1 "2018-08-26T10:17:37Z")

</div>

I propose change to JSON Node, to improve UX:

1. Add checkbox "JSON Validation Schema" - when clicked displays JSON Editor  
 ![!JSON%20Input](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/9/9dd04cebebd3428c80a23ddb5bc3e02c0d4cdd94.png)

Benefits:

1. Schema validation support is visible from Node
2. Using only one node instead of two (passing schema in msg.schema)
3. More readable from flow perspective

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [26 August 2018 10:19 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575/2 "2018-08-26T10:19:57Z")

</div>

Yes, this was always the longer term plan for the node. Adding support for msg.schema was the initial change to allow validation without having to do all the UI work as well.

---

<div class="post-metadata">

**Author:** ![tmdoit](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/tmdoit/32/18441_2.png) [@tmdoit](https://discourse.nodered.org/u/tmdoit)\
**Post date:** [26 August 2018 10:44 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575/3 "2018-08-26T10:44:50Z")

</div>

What about adding dropdown list with draft version to use?

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [26 August 2018 18:13 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575/4 "2018-08-26T18:13:19Z")

</div>

Is there a validator library that supports multiple ?

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [26 August 2018 18:27 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575/5 "2018-08-26T18:27:44Z")

</div>

As far as I can tell from its readme, the library we already use does support multiple drafts.

---

<div class="post-metadata">

**Author:** ![nlecaude](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nlecaude/32/25_2.png) [@nlecaude](https://discourse.nodered.org/u/nlecaude)\
**Post date:** [27 August 2018 18:33 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575/6 "2018-08-27T18:33:59Z")

</div>

Indeed, it should already support all versions.

---

<div class="post-metadata">

**Author:** ![nlecaude](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/nlecaude/32/25_2.png) [@nlecaude](https://discourse.nodered.org/u/nlecaude)\
**Post date:** [29 August 2018 03:38 UTC](https://discourse.nodered.org/t/enhancement-json-node-add-json-editor-to-node/2575/7 "2018-08-29T03:38:26Z")

</div>

Regarding the version to use, currently it will validate against draft-04 and 07, I can also add draft-06. You would select this in your schema with the $schema keyword:

`"$schema": "http://json-schema.org/draft-07/schema#"`  
If no `$schema` is defined it will validated against draft-07 by default.
