It fails at the \\" as in:
s:='[{"snombre":"PANTENE ENJ L.Y SEDOSO 400ML\\","rpreciou":285}]';
While this works:
s:='[{"snombre":"PANTENE ENJ L.Y SEDOSO 400ML","rpreciou":285}]';
Tested using:
j := TJSONNode.Create;
j.Parse(s);
j.Free;
Your file has one instance of \\, remove it and it'll work.
Changing NextToken:
function NextToken(var C: PChar; out T: TJsonToken): Boolean;
.....
if C^ = '"' then
begin
Inc(C);
repeat
if C^ = '\' then
begin
Inc(C);
if C^ = '\' then
Inc(C)
else if C^ = '"' then
Inc(C)