vrl 0.32.0

Vector Remap Language
Documentation
{
  "anchor": "unflatten",
  "name": "unflatten",
  "category": "Enumerate",
  "description": "Unflattens the `value` into a nested representation.",
  "arguments": [
    {
      "name": "value",
      "description": "The array or object to unflatten.",
      "required": true,
      "type": [
        "object"
      ]
    },
    {
      "name": "separator",
      "description": "The separator to split flattened keys.",
      "required": false,
      "type": [
        "string"
      ],
      "default": "."
    },
    {
      "name": "recursive",
      "description": "Whether to recursively unflatten the object values.",
      "required": false,
      "type": [
        "boolean"
      ],
      "default": "true"
    }
  ],
  "return": {
    "types": [
      "object"
    ]
  },
  "examples": [
    {
      "title": "Unflatten",
      "source": "unflatten({\n    \"foo.bar.baz\": true,\n    \"foo.bar.qux\": false,\n    \"foo.quux\": 42\n})\n",
      "return": {
        "foo": {
          "bar": {
            "baz": true,
            "qux": false
          },
          "quux": 42
        }
      }
    },
    {
      "title": "Unflatten recursively",
      "source": "unflatten({\n    \"flattened.parent\": {\n        \"foo.bar\": true,\n        \"foo.baz\": false\n    }\n})\n",
      "return": {
        "flattened": {
          "parent": {
            "foo": {
              "bar": true,
              "baz": false
            }
          }
        }
      }
    },
    {
      "title": "Unflatten non-recursively",
      "source": "unflatten({\n    \"flattened.parent\": {\n        \"foo.bar\": true,\n        \"foo.baz\": false\n    }\n}, recursive: false)\n",
      "return": {
        "flattened": {
          "parent": {
            "foo.bar": true,
            "foo.baz": false
          }
        }
      }
    },
    {
      "title": "Ignore inconsistent keys values",
      "source": "unflatten({\n    \"a\": 3,\n    \"a.b\": 2,\n    \"a.c\": 4\n})\n",
      "return": {
        "a": {
          "b": 2,
          "c": 4
        }
      }
    },
    {
      "title": "Unflatten with custom separator",
      "source": "unflatten({ \"foo_bar\": true }, \"_\")",
      "return": {
        "foo": {
          "bar": true
        }
      }
    }
  ],
  "pure": true
}