13

What is the correct way to assign a JSON string to a variable? I keep getting EOF errors.

var somejson = "{
    "key1": "val1",
    "key2": "value2"
}";

http://jsfiddle.net/x7rwq5zm/1/

1
  • 1
    I guess you're looking for JSON.parse() Commented Jul 12, 2015 at 20:16

4 Answers 4

21

You have not escaped properly. You make sure you do:

var somejson = "{ \"key1\": \"val1\",\"key2\": \"value2\"}";

The easier way would be to just convert an existing object to a string using JSON.stringify(). Would recommend this as much as possible as there is very little chance of making a typo error.

var obj = {
    key1: "val1",
    key2: "value2"
};

var json = JSON.stringify(obj);
Sign up to request clarification or add additional context in comments.

3 Comments

Your answer is definitely valid, but probably easier to use ' than escaping everything.
good to know. Out of curiosity, what environments? I've never run into it. I'd assume it would be instantiated as a string, and any later parse would have no knowledge of how that string was made.
@DylanWatt meant to click edit, clicked delete. Tired, lol. I've run into some issues in nodejs on another project I worked on using single quotes. That being said, that may no longer be an issue in the newer versions >0.10.x
9

If you want the string, not the object (note the ' instead of ")

var somejson =  '{ "key1": "val1", "key2": "value2" }';

If you want a string declared with multiple lines, not the object (newline is meaningful in Javascript)

var somejson =  '{'
 + '"key1": "val1",' 
 + '"key2": "value2"' 
 + '}';

If you want the object, not the string

var somejson =  { "key1": "val1", "key2": "value2" };

If you want a string generically

var somejson =  JSON.stringify(someobject);

Comments

2

Best way to assign JSON string value to a variable.

var somejson = JSON.parse('{"key1": "val1","key2": "value2"}')

Comments

0

I think you should use JSON.stringify function. See the answers here - Convert JS object to JSON string

var somejson = {
    "key1": "val1",
    "key2": "value2"
};
somjson = JSON.stringify(somejson);

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.