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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.