@koumoul/vuetify-jsonschema-form

Generate forms for the vuetify UI library (vuejs) based on annotated JSON schemas.
5,138 579
Install
npm install @koumoul/vuetify-jsonschema-form
Latest Version:0.36.4
Vue:2
License:MIT
Last Updated:Oct 22, 2026
Links: GitHub  ·  npm
Maintainer: albanm

vuetify-jsonschema-form

Generate forms for the vuetify UI library (vuejs) based on annotated JSON schemas.

All basic types, nested objects, nested arrays, various display options, simple validation rules, custom content injected using slots, etc. For a view of all the functionalities check the demo.

Compatible with vuetify 1 and 2. Check this alternative demo for support of vuetify 1.

Installation

npm i --save @koumoul/vuetify-jsonschema-form

Usage

<template>
  <v-form v-model="formValid">
    <v-jsonschema-form v-if="schema" :schema="schema" :model="dataObject" :options="options" @error="showError" @change="showChange" @input="showInput" />
  </v-form>
</template>

<script>
import Vue from 'vue'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
import Draggable from 'vuedraggable'
import axios from 'axios'
import VueAxios from 'vue-axios'
import Swatches from 'vue-swatches'
import 'vue-swatches/dist/vue-swatches.min.css'
import VJsonschemaForm from '@koumoul/vuetify-jsonschema-form'
import '@koumoul/vuetify-jsonschema-form/dist/main.css'
import { Sketch } from 'vue-color'

Vue.use(Vuetify)
Vue.use(VueAxios, axios)

Vue.component('swatches', Swatches)
Vue.component('draggable', Draggable)
Vue.component('color-picker', Sketch)

export default {
  components: {VJsonschemaForm},
  data() {
    return {
      schema: {...},
      dataObject: {},
      formValid: false,
      options: {
        debug: false,
        disableAll: false,
        autoFoldObjects: true
      }
    }
  },
  methods: {
    showError(err) {
      window.alert(err)
    },
    showChange(e) {
      console.log('"change" event', e)
    },
    showInput(e) {
      console.log('"input" event', e)
    }
  }
}
</script>

The library can also be loaded from source if you use Vuetify "à la carte". In this case you will have to instruct your build tool to transpile the source with babel.

import VJsonschemaForm from '@koumoul/vuetify-jsonschema-form/lib/index.vue'

I you don't use a build tool, and want to load the library through script tags, you can do something like this.

...
<script src="https://cdn.jsdelivr.net/npm/@koumoul/vuetify-jsonschema-form@0.26/dist/main.js"></script>
<link href="https://cdn.jsdelivr.net/npm/@koumoul/vuetify-jsonschema-form@0.26/dist/main.css" rel="stylesheet">
...
<script>
  ...
  components: {
    "v-jsonschema-form": VJsonschemaForm.default
  }
  ...
</script>

Related Packages

@koumoul/vjsf-markdown

A plugin to add markdown edition capability to vjsf.

6,426
@koumoul/nuxt-config-inject

Hackish way to obtain "build once - deploy many times" with nuxtjs

4,013 11
@koumoul/vue-openapi

Display API documentation that follow the OpenAPI 3.0 Specification

1,110 94
@koumoul/data-fair-charts

Nuxt.js project

996

Version History

Version Released Vue License
0.36.4 ^2.6.10 MIT
0.36.3 ^2.6.10 MIT
0.36.2 ^2.6.10 MIT
0.36.0 ^2.6.10 MIT
0.35.0 ^2.6.10 MIT