2016-09-19 60 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

相关问题