2018-07-16 22:52:41 +08:00
|
|
|
<!DOCTYPE HTML>
|
2020-09-23 16:23:38 +08:00
|
|
|
<html lang="en">
|
2018-07-16 22:52:41 +08:00
|
|
|
<head>
|
2020-09-23 16:23:38 +08:00
|
|
|
<meta charset="utf-8">
|
2018-07-16 22:52:41 +08:00
|
|
|
|
|
|
|
<link href="../dist/jsoneditor.css" rel="stylesheet" type="text/css">
|
|
|
|
<script src="../dist/jsoneditor.js"></script>
|
|
|
|
|
|
|
|
<style type="text/css">
|
|
|
|
body {
|
|
|
|
font: 10.5pt arial;
|
|
|
|
color: #4d4d4d;
|
|
|
|
line-height: 150%;
|
|
|
|
width: 500px;
|
|
|
|
padding-left: 40px;
|
|
|
|
}
|
|
|
|
|
|
|
|
code {
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
}
|
|
|
|
|
|
|
|
#jsoneditor {
|
|
|
|
width: 500px;
|
|
|
|
height: 500px;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
When clicking on a JSON field or value, a log message will be shown in
|
|
|
|
console.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<form>
|
|
|
|
<div id="jsoneditor"></div>
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>
|
2019-08-29 21:45:32 +08:00
|
|
|
const container = document.getElementById('jsoneditor')
|
2018-07-16 22:52:41 +08:00
|
|
|
|
2019-08-29 21:45:32 +08:00
|
|
|
const options = {
|
2018-07-16 22:52:41 +08:00
|
|
|
mode: 'tree',
|
2019-07-09 02:00:34 +08:00
|
|
|
modes: ['code', 'form', 'text', 'tree', 'view', 'preview'], // allowed modes
|
2018-07-26 07:48:03 +08:00
|
|
|
name: "jsonContent",
|
2018-07-16 22:52:41 +08:00
|
|
|
onError: function (err) {
|
2019-08-29 21:45:32 +08:00
|
|
|
alert(err.toString())
|
2018-07-16 22:52:41 +08:00
|
|
|
},
|
|
|
|
onEvent: function(node, event) {
|
|
|
|
if (event.type === 'click') {
|
2019-08-29 21:45:32 +08:00
|
|
|
let message = 'click on <' + node.field +
|
2018-07-30 19:09:27 +08:00
|
|
|
'> under path <' + node.path +
|
2019-08-29 21:45:32 +08:00
|
|
|
'> with pretty path: <' + prettyPrintPath(node.path) + '>'
|
|
|
|
if (node.value) {
|
|
|
|
message += ' with value <' + node.value + '>'
|
|
|
|
}
|
|
|
|
console.log(message)
|
2018-07-16 22:52:41 +08:00
|
|
|
}
|
2018-07-26 07:48:03 +08:00
|
|
|
function prettyPrintPath(path) {
|
2019-08-29 21:45:32 +08:00
|
|
|
let str = ''
|
|
|
|
for (let i=0; i<path.length; i++) {
|
|
|
|
const element = path[i]
|
2018-07-30 19:09:27 +08:00
|
|
|
if (typeof element === 'number') {
|
|
|
|
str += '[' + element + ']'
|
2018-07-26 07:48:03 +08:00
|
|
|
} else {
|
2019-08-29 21:45:32 +08:00
|
|
|
if (str.length > 0) str += ','
|
|
|
|
str += element
|
2018-07-26 07:48:03 +08:00
|
|
|
}
|
|
|
|
}
|
2019-08-29 21:45:32 +08:00
|
|
|
return str
|
2018-07-26 07:48:03 +08:00
|
|
|
}
|
2018-07-16 22:52:41 +08:00
|
|
|
}
|
2019-08-29 21:45:32 +08:00
|
|
|
}
|
2018-07-16 22:52:41 +08:00
|
|
|
|
2019-08-29 21:45:32 +08:00
|
|
|
const json = {
|
2018-07-26 07:48:03 +08:00
|
|
|
"array": [1, 2, [3,4,5]],
|
|
|
|
"boolean": true,
|
|
|
|
"htmlcode": '"',
|
|
|
|
"escaped_unicode": '\\u20b9',
|
|
|
|
"unicode": '\u20b9,\uD83D\uDCA9',
|
|
|
|
"return": '\n',
|
|
|
|
"null": null,
|
|
|
|
"number": 123,
|
|
|
|
"object": {"a": "b", "c": "d", "e": [1, 2, 3]},
|
|
|
|
"string": "Hello World",
|
|
|
|
"url": "http://jsoneditoronline.org",
|
|
|
|
"[0]": "zero"
|
2019-08-29 21:45:32 +08:00
|
|
|
}
|
2018-07-26 07:48:03 +08:00
|
|
|
|
2019-08-29 21:45:32 +08:00
|
|
|
window.editor = new JSONEditor(container, options, json)
|
2018-07-16 22:52:41 +08:00
|
|
|
|
2019-08-29 21:45:32 +08:00
|
|
|
console.log('json', json)
|
|
|
|
console.log('string', JSON.stringify(json))
|
2018-07-16 22:52:41 +08:00
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|