Reproducible on 22.7.1 and 22.6.1
**How to reproduce**

SELECT 1 AS `\\"ph"`
FORMAT JSON

Query id: 0159c301-b91e-4b59-b8e1-840056d18ffb

```
{
	"meta":
	[
		{
			"name": "\\\\\\\"ph\\\"",
			"type": "UInt8"
		}
	],

	"data":
	[
		{
			"\\\"ph\"": 1
		}

	],

	"rows": 1,

	"statistics":
	{
		"elapsed": 0.000840535,
		"rows_read": 1,
		"bytes_read": 1
	}
}
```
Expected result: column name in meta and data should be the same.
Actual result: They are not.

It used to work on 22.3.15 - Even though it has another issue back then.
void flush() override
    {
        ostr->next();
        if (validating_ostr)
            out.next();
    }
    void setRowsBeforeLimit(size_t rows_before_limit_) override
    {
        statistics.applied_limit = true;
        statistics.rows_before_limit = rows_before_limit_;
    }
protected:
    void writeField(const IColumn & column, const ISerialization & serialization, size_t row_num) override;
    void writeFieldDelimiter() override;
    void writeRowStartDelimiter() override;
    void writeRowEndDelimiter() override;
    void writeRowBetweenDelimiter() override;
    void writePrefix() override;
    void writeSuffix() override;
    void writeMinExtreme(const Columns & columns, size_t row_num) override;
    void writeMaxExtreme(const Columns & columns, size_t row_num) override;
    void writeTotals(const Columns & columns, size_t row_num) override;
    void writeBeforeTotals() override;
    void writeAfterTotals() override;
    void writeBeforeExtremes() override;
    void writeAfterExtremes() override;
    void finalizeImpl() override;
    virtual void writeExtremesElement(const char * title, const Columns & columns, size_t row_num);
    void onRowsReadBeforeUpdate() override { row_count = getRowsReadBefore(); }