UNPKG

jsoneditor

Version:

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

67 lines (57 loc) 1.66 kB
<!DOCTYPE HTML> <html> <head> <title>JSONEditor | Dynamic Auto Complete</title> <link href="../dist/jsoneditor.css" rel="stylesheet" type="text/css"> <script src="../dist/jsoneditor.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script> <style type="text/css"> #jsoneditor { width: 500px; height: 500px; } p { width: 500px; font-family: "DejaVu Sans", sans-serif; } </style> </head> <body> <p> This example demonstrates how to autocomplete works, options available are dynamics and consist in all the strings found in the json </p> <div id="jsoneditor"></div> <script> // create the editor var container = document.getElementById('jsoneditor'); var options = { autocomplete: { applyTo:['value'], getOptions: function (text, path, input, editor) { return new Promise(function (resolve, reject) { var options = extractUniqueWords(editor.get()); if (options.length > 0) resolve(options); else reject(); }); } } }; // helper function to extract all unique words in the keys and values of a JSON object function extractUniqueWords (json) { return _.uniq(_.flatMapDeep(json, function (value, key) { return _.isObject(value) ? [key] : [key, String(value)] })) } var json = { 'array': [{'field1':'v1', 'field2':'v2'}, 2, 3], 'boolean': true, 'null': null, 'number': 123, 'object': {'a': 'b', 'c': 'd'}, 'string': 'Hello World' }; var editor = new JSONEditor(container, options, json); </script> </body> </html>