How do I handle newlines in JSON?

javascript, json, newline

Solution

This is what you want:

var data = '{"count" : 1, "stack" : "sometext\\n\\n"}';

You need to escape the `\` in your string (turning it into a double-`\`), otherwise it will become a newline in the JSON source, not the JSON data.

Problem

I've generated some JSON and I'm trying to pull it into an object in JavaScript. I keep getting errors. Here's what I have: ``` var data = '{"count" : 1, "stack" : "sometext\n\n"}'; var dataObj = eval('('+data+')'); ``` This gives me an error: ``` unterminated string literal ``` With `JSON.parse(data)`, I see similar error messages: "`Unexpected token ↵`" in Chrome, and "`unterminated string literal`" in Firefox and IE. When I take out the `\n` after `sometext` the error goes away in both cases. I can't seem to figure out why the `\n` makes `eval` and `JSON.parse` fail.

Original source

Related problems