2016-09-19 6 views
0

자바 스크립트에서 json 배열의 값을 가져 오려고합니다. 아래 자바 스크립트 파일의 일부입니다. 나는 값을 얻기 위해 jsondata.value을 사용하고 있습니다. 콘솔에 json 데이터를 올바르게 표시하지만 jsondata.value이 값을 가져 오지 않습니다.자바 스크립트에서 json 배열의 값을 얻는 방법

+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

좋아, 내가 한 말을 해봤지만이 오류가 발생한다. Uncaught SyntaxError : 예상치 못한 입력 (익명 함수) @ line var jsondataObj = JSON.parse (jsondata); – shek

+0

입력의 ID가 "jsonArray"입니까? josephnvu

+0

또한 JSON 객체가 이미 있으므로 HTTP 요청을하는 이유는 무엇입니까? 나는이 모든 일에 대해 혼란 스럽다. 당신은 코 펩이나 jsfiddle처럼 이것을 실행할 수 있습니까? – josephnvu

관련 문제