Json is flawed in any way possible, imo. It was intended to be edited and read by human; it can not comments, trailing commas, non-quoted keys. It was planned for universal exchange; it doesn't contain dates, full-floats, byte arrays in readable form. It can't have backreferences for graph exchange or per-packet string interning.
Even "obvious syntax" argument is wrong. "Key": value is not what comes to mind unless your parents spoke to you on js.
Why it is still here: legacy that was easier to read-write than sgml-flavoured monster. Other arguments are nonsense.