2015-07-12 4 views

ответ

9

Вы не экранированы. Вы убедитесь, что вы делаете:

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

Легче всего было бы просто преобразовать существующий объект в строку, используя JSON.stringify(). Порекомендовал бы это как можно больше, так как очень мало шансов сделать опечатку.

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

var json = JSON.stringify(obj); 
+2

Ваш ответ, безусловно, действует, но, вероятно, проще использовать ' '' не выход все. –

+0

приятно знать. Из любопытства, какая среда? Я никогда не сталкивался с этим. Я бы предположил, что он будет создан как строка, и любой последующий синтаксический анализ не будет знать, как эта строка была создана. –

+0

@DylanWatt предназначался для клика по редактированию, нажав удаление. Усталый, lol. Я столкнулся с некоторыми проблемами в nodejs в другом проекте, который работал над использованием одинарных кавычек. При этом, возможно, это уже не проблема в более новых версиях> 0.10.x –

0

Я думаю, вы должны использовать функцию JSON.stringify. Смотрите ответы здесь - Convert JS object to JSON string

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

Если вы хотите строку, а не объект (обратите внимание на ' вместо ")

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

Если вы хотите строку объявленную с несколькими линиями, а не объект (новая строка имеет смысл в Javascript)

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

Если вы хотите, чтобы объект, а не строка

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

Если вы хотите строку обобщенно

var somejson = JSON.stringify(someobject); 
Смежные вопросы