Разбор JSON не работает JavaScript

Я схожу с ума с какой-то проблемой, и я не знаю, как это исправить. Я пытаюсь разобрать простую строку json и обновить с нее содержимое моего сайта.

var json = [{"OID:":"1b383180186940dc0cc2a781fcf013ce", "NUMBER":"029348203984","SETTINGS":"Default","LATEST":"09-06-2015"}];
var obj=json[0];
console.log(obj['OID']);
console.log(obj['NUMBER']);

Это приводит к:

Undifined

029348203984

Таким образом, считывание числа идет хорошо. Но OID не идет хорошо. В другом куске моего кода это работает нормально

var obj = arr[i];
var optn = document.createElement("OPTION");
optn.text = obj['OID'];
document.getElementById("List").options.add(optn);

И это работает

3 ответа

Решение

У вас есть дополнительный : символ в вашем json переменная.

Try:
var json = [{"OID":"1b383180186940dc0cc2a781fcf013ce", "NUMBER":"029348203984","SETTINGS":"Default","LATEST":"09-06-2015"}];
var obj=json[0];
console.log(obj['OID']);
console.log(obj['NUMBER']);

Редактировать:
В следующий раз я рекомендую объявлять ваши объекты (и содержимое массивов, и все, что может содержать более 80 символов) в более удобочитаемом формате. Это поможет с обнаружением таких ошибок.

    var json = [
      {
      "OID:":"1b383180186940dc0cc2a781fcf013ce",
      "NUMBER":"029348203984","SETTINGS":"Default",
      "LATEST":"09-06-2015"
      }
    ];

Надеюсь, это поможет!

В оригинальном JSON, похоже, у вас есть дополнительный символ в ключе JSON:

"OID:":"1b383180186940dc0cc2a781fcf013ce"

Похоже, так и должно быть

"OID":"1b383180186940dc0cc2a781fcf013ce"

вместо.

В вашем объекте json внутри кавычек есть двоеточие.

var json = [{"OID:":"1b383180186940dc0cc2a781fcf013ce", "NUMBER":"029348203984","SETTINGS":"Default","LATEST":"09-06-2015"}];

должно быть...

var json = [{"OID":"1b383180186940dc0cc2a781fcf013ce", "NUMBER":"029348203984","SETTINGS":"Default","LATEST":"09-06-2015"}];

Или же вам нужно ссылаться obj['OID:'] если вы намеревались иметь эту дополнительную толстую кишку.

Другие вопросы по тегам