2016-09-19 1 views
0

Я пытаюсь получить значения из json-массива внутри javascript. Ниже приведена часть моего файла javascript. Я использую jsondata.value для получения значений. Он корректно отображает данные json на консоли, но jsondata.value не работает для получения значений.Как получить значения из json-массива в javascript

+0

Почему вы отредактировали свой вопрос и удалили код? Я считаю, что это помогло бы кому-то другому. Этот вопрос и ответ теперь путают? Во всяком случае, я рад, что он работает на вас – josephnvu

+0

Это были корпоративные данные json. Сожалею. – shek

ответ

0

Я предполагаю, что ваш «jsondata» - это текст в DOM? Если это так, вы хотите захватить «строку» в DOM и проанализировать ее в действительный объект JavaScript. Для этого вам нужно, чтобы захватить его соответствующим образом:

var jsondata = document.getElementById("jsonArray").value; 

Затем вам нужно разобрать его

var jsondataObj = JSON.parse(jsondata); 

На данный момент, jsondataObj ваши данные. Если вы хотите заполнить это в своей сетке, просто введите его так, как вы хотели. Нет необходимости в XHRHttpRequest, поскольку вы уже ввели ваши данные в DOM:

var gridOptions = { ... [your options here] }; 

document.addEventListener('DOMContentLoaded', function() { 
    var gridDiv = document.querySelector('#myGrid'); 

    new agGrid.Grid(gridDiv, gridOptions); 

    var jsondata = document.getElementById("jsonArray").value; 

    var jsondataObj = JSON.parse(jsondata); 

    function isNumeric(n) { 
     return !isNaN(parseFloat(n)) && isFinite(n); 
    } 

    var parsedData = jsondataObj.map(function(obj) { 
     return Object.keys(obj).reduce(function(memo, key) { 
      var value = obj[key]; 
      memo[key] = isNumeric(value) ? Number(value) : value; 

      return memo; 
     }, {}) 
    }) 

    console.log(parsedData); 

    gridOptions.api.setRowData(parsedData); 

}); 
+0

Хорошо, я попытался сделать то, что вы сказали, но я получаю эту ошибку: Uncaught SyntaxError: Неожиданный конец ввода (анонимная функция) @ line var jsondataObj = JSON.parse (jsondata); – shek

+0

Идентификатор вашего входа "jsonArray"? как josephnvu

+0

Также, поскольку у вас уже есть объект JSON, почему вы делаете HTTP-запрос? Я запутался в этом. Можете ли вы запустить это как codepen или jsfiddle? – josephnvu

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