2016-09-19 93 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是您的數據。如果你想將它填充到你的網格中,只需按照你想要的方式注入它。由於您已將數據注入到DOM中,因此不需要XHRHttpRequest:

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

好吧,我試着做你說的,但我得到這個錯誤:未捕獲的SyntaxError:意外的輸入結束(匿名函數)@ line var jsondataObj = JSON.parse(jsondata); – shek

+0

你的輸入ID是「jsonArray」嗎?像 josephnvu

+0

另外,既然您已經擁有JSON對象,您爲什麼要發出HTTP請求?我對這件事感到困惑。你可以用類似codepen或jsfiddle來運行它嗎? – josephnvu

相關問題