A JSON validator answers one question: will a parser accept this document. That sounds narrow and it is the question that matters, because every consumer downstream of you, in every language, applies the same grammar. If it parses here it parses there.
The useful part is not the yes or no but the location. Modern JavaScript engines changed how they report syntax errors: instead of a character offset, newer browsers return a quoted window of the source around the problem. That is friendlier to read and considerably harder for a tool to turn into a cursor position, which is why some validators regressed to simply saying "unexpected token" with no line at all. We locate the failure by bisection, narrowing the document until the smallest failing fragment is found, so the error still points at a line and column you can act on.
Most real failures come from a small set of causes, and recognising them saves the search. Trailing commas after the last element of an object or array are legal in JavaScript and illegal in JSON. Single quotes around strings are likewise a JavaScript habit that JSON rejects. Unquoted object keys are valid in JavaScript object literals and not in JSON. Comments of either kind are not part of the format, however reasonable that seems in a configuration file. And a bare NaN or Infinity, which JavaScript will happily produce, has no JSON representation at all.
Encoding produces the confusing failures. A byte order mark at the start of a file is invisible in most editors and makes the first character not the opening brace the parser expects. Text pasted from a word processor can carry curly quotation marks that look almost identical to straight ones and are not the same character. A document that looks perfect and refuses to parse at position zero is almost always one of these two.
Validity is not correctness. A document can parse cleanly and still be wrong for its purpose: a required field missing, a number where a string was expected, an array where the consumer wanted an object. That is schema validation, a separate and heavier question, and a validator that only checks grammar will tell you nothing about it. Knowing which of the two you actually need saves time.
As with every tool here, the document is parsed in your browser and never transmitted. That is worth caring about precisely because the documents people validate are the ones that are failing in production, and those tend to be full of real identifiers belonging to real users.