<html>
<head>
<title>JSONEditor | template + enums</title>
<link href="https://unpkg.com/jsoneditor@5.13.0/dist/jsoneditor.css" rel="stylesheet" type="text/css">
<script src="https://unpkg.com/jsoneditor@5.13.0/dist/jsoneditor.js"></script>
<style type="text/css">
#jsoneditor {
width: 500px;
height: 700px;
background: white;
}
p {
width: 500px;
font-family: sans;
}
</style>
</head>
<body>
<p>Demonstrates a template with JSON schema validation. To use: click the context menu of the first or second employee, click insert or append, click "Employee".</p>
<p><a href="https://github.com/josdejong/jsoneditor/issues/473">See github issue #473</a></p>
<div id="jsoneditor"></div>
<script>
var schema = {
"title": "Example Schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"gender": {
"enum": ["male", "female"]
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
},
"job": {
"$ref": "job"
}
},
"required": ["firstName", "lastName"]
}
};
var job = {
"title": "Job description",
"type": "object",
"properties": {
"company": {
"type": "string"
},
"role": {
"type": "string"
}
}
};
var json = [
{
firstName: 'John',
lastName: 'Doe',
gender: 'male',
age: 28,
job: {
company: 'freelance',
role: 'developer'
}
},
{
firstName: 'Susan',
lastName: 'Smith',
gender: null,
age: 28,
job: {
company: 'freelance',
role: 'sales'
}
}
];
var templates = [
{
text: 'Employee',
title: 'Insert a new employee',
className: 'jsoneditor-type-object',
field: 'employee',
value: {
firstName: '',
lastName: '',
gender: '',
age: '',
job: {
company: '',
role: ''
}
}
}
]
var options = {
schema: schema,
schemaRefs: {"job": job},
templates: templates
};
// create the editor
var container = document.getElementById('jsoneditor');
var editor = new JSONEditor(container, options, json);
</script>
</body>
</html>
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |