2016-01-12 2 views
-1

Я пытаюсь преобразовать строку ниже в JSON объект -JSON.parse - Unexpcted маркер ошибки

var objString = "{ a:10, b:15 }"; 
var jsonObj = JSON.parse(objString); 

Я получаю ниже ошибки -

SyntaxError: Unexpected token a 
    at Object.parse (native) 

Любая идея, как я могу преобразовать строку в объект?

+0

Часто полезно для запуска JSON через формат JSON шашке, чтобы отследить проблемы, как это. –

ответ

1

Ваш Json недействителен.

'{ a:10, b:15 }' 

Ваши значения действительны, но ваши свойства должны быть в кавычках, как это:

'{ "a":10, "b":15 }' 

Значение типа данных может включать в себя:

  • Номер
  • Строка
  • Boolean
  • Array
  • Объект
  • нуль

Попробуйте это:

var objString = '{ "a":10, "b":15 }'; 
var jsonObj = JSON.parse(objString); 

Более подробная информация здесь:

http://www.tutorialspoint.com/json/json_data_types.htm

+0

Может быть полезно объяснить _why_, это неверно. – Andy

+0

Извините, Энди, да. –

0

The JSON.parse() метод анализирует строку в формате JSON, необязательно преобразуя значение, полученное путем синтаксического анализа.

Попробуйте это:

var objString = '{ "a":10, "b":15 }'; 
var jsonObj = JSON.parse(objString); 
+0

Нет. JSON OP был недействителен, как показано в вашем примере. – Andy

+0

@ Энди, что вы пытаетесь передать –

+0

Вы говорите: «Я думаю, что данные, которые вы пытаетесь преобразовать в JSON, уже находятся в JSON». Это неверно. OP не пытается конвертировать _anything_ в JSON. Они пытаются преобразовать _from_ JSON в объект JS, но не могут, поскольку JSON недействителен. – Andy

0

использование "" внутри '', тогда он будет работать.

var objString = '{"a":"10", "b":"15" }'; 
 

 
//console.log(objString); 
 

 
var jsonObj = JSON.parse(objString); 
 

 
console.log(JSON.stringify(jsonObj));

Смежные вопросы