WOW. Just… WOW. I spent a day testing vue-form-json-schema, and not only is it FULLY Quasar compatible, you can literally use this to create ENTIRE LAYOUTS not just a single Quasar form… HOLY COW is it powerful with Quasar… 
For anyone that would like to quickly use vue-form-json-schema with Quasar, here is some of my testing work… 
Just “npm i vue-form-json-schema” in your Quasar project, create a component and paste this code into it…
<template>
<div class="">
<vue-form-json-schema
v-model="value"
:schema="schema"
:ui-schema="uiSchema"
v-on:state-change="onChangeState"
v-on:validated="onValidated"
:components="components"
/>
</div>
</template>
<script>
import { QInput, QCard, QExpansionItem } from 'quasar'
import VueFormJsonSchema from 'vue-form-json-schema/dist/vue-form-json-schema.esm.js'
export default {
props: ['value', 'schema', 'uiSchema'],
components: {
VueFormJsonSchema
},
data () {
return {
components: { // Add your sandboxed quasar or other components here (if you don't add it here, you can't use them)
'input': QInput,
'card': QCard,
'expansion': QExpansionItem
}
}
},
methods: {
onChange (value) {
this.$emit('change', value)
},
onChangeState (value) {
this.$emit('state', value)
},
onValidated (value) {
this.$emit('valid', value)
}
}
}
</script>
Then from anywhere in app, add this to your template (you’ll have to add the above component to your project as well of course):
<form-generator v-model="yourModel" :schema="yourSchema" :uiSchema="yourUISchema"/>
If you want some quick data that you can use to just see it working immediately, here is a q-card, with padding and spacing set, and inside it 2 input items, and they are all generated right from schema that you can put into config
…
yourModel: {
firstName: '', lastName: ''
},
yourSchema: {
type: 'object',
properties: {
firstName: {
type: 'string'
},
lastName: {
type: 'string'
}
}
},
yourUISchema: [
{
component: 'card',
fieldOptions: {
class: ['q-ma-xl', 'q-pa-md']
},
children: [
{
component: 'input',
model: 'firstName',
fieldOptions: {
on: ['input'],
props: { outlined: true, label: 'First Name' }
}
},
{
component: 'input',
model: 'lastName',
fieldOptions: {
props: { rounded: true, outlined: true, label: 'Last Name' },
class: ['q-pa-xl'],
on: ['input']
}
}
]
}
]