JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>

<div id="app">
  <p>{{ obj }}</p>
  <p v-for="(val, key) in obj">
    <input v-model="obj[key]">
  </p>
</div>

JavaScript

new Vue({
  el: '#app',
  data: {
    json: '{"name":"Vasya","surname":"Pupkin","гражданство": "РФ"}',
  },
  computed: {
    obj() {
      return new Proxy(JSON.parse(this.json), {
        set: (tagret, prop, val) => {
          this.json = JSON.stringify(Object.assign({}, this.obj, { [prop]: val }));
          return true;
        }
      });
    },
  },
});