JSFiddle - React, Tailwind, and code Playground

JavaScript

JSON.unflattenKey = function(str) {
  if(!str) return null;
  var result = {};
  result.name = str.replace(/\[\d+\]$/, "");
  result.index = -1;
  if(/\[\d+\]$/.test(str)) { // has index
    result.index = str.match(/\[(\d+)\]$/)[1];
  }
  return result;
}
JSON.unflatten = function(data) {
  if(data === null || typeof data !== "object" || Array.isArray(data)) { // empty array or primitive
    return data;
  }
  var result, temp;
  var first = null;
  for(var k in data) { first = k; break; };
  if(first === null) { // empty object
    return {};
  } else if(first.indexOf("[") === 0) { // array
    result = [];
  } else { // object
    result = {};
  }
  for(var k in data) {
    var value = data[k];
    var obj = result;
    var nameParts = k.split(".");
    var a, b;
    for(var i=0; i<nameParts.length; i++) {
      a = JSON.unflattenKey(nameParts[i]);
      b = JSON.unflattenKey(nameParts[i+1]);
      if(b !== null) { // part with lookahead
        if(a.index >= 0 && !a.name) { // raw array
          if(typeof obj[a.index] === "undefined") {
            obj[a.index] = (!b.name ? [] : {});
          }
          obj = obj[a.index];
        } else if(a.index >= 0 && a.name) { // named array
          if(typeof obj[a.name] === "undefined")
             obj[a.name] = [];
          if(typeof obj[a.name][a.index] === "undefined") {
            obj[a.name][a.index] = (!b.name ? [] : {});
          }
          obj = obj[a.name][a.index];
        } else if(a.index < 0 && a.name) { // nested object and property
          if(typeof obj[a.name] === "undefined") {
            obj[a.name] = (!b.name ? [] : {});
          }
          obj = obj[a.name];
        }
      } else { // last part
        if(a.index >= 0 && !a.name) { // raw array
          if(typeof obj[a.index] === "undefined")
            obj[a.index] = value;
        } else if(a.index >= 0 && a.name) { // named array
          if(typeof obj[a.name] === "undefined")
            obj[a.name] = [];
          if(typeof...