That’s expected behavior.
JSON.stringify does not act like an “identity” function when called on data that has already been converted to JSON. By design, it will escape quote marks, backslashes, etc.
You need to call JSON.parse() exactly as many times as you called JSON.stringify() to get back the same object you put in.