Empty values, root arrays, and unusual keys
For {"items": [], "settings": {}, "deleted": null}, the output retains all three keys and their values. A root array uses paths such as [0].id. A root primitive, such as 42 or null, is stored under the empty key "" because it has no parent path.
Literal dots or brackets in your original keys can make paths ambiguous. For example, {"a.b": 1, "a": {"b": 2}} produces the same path twice. This tool reports the collision rather than overwriting a value. Rename conflicting keys before flattening and keep the original file if you need to reconstruct it.