2013-10-08 5 views
0

I 구글 차트를 생성하는 다음과 같은 기능을 가지고 있지만, 제대로 동작하지 않습니다 :패스 문자열

test="[['2004', 1000, 400],['2005', 1170, 460],['2006', 660, 1120],['2007', 1030, 540]]"; 
:

function drawChart(a) { 
      alert(a.test); 
      var data = new google.visualization.DataTable();  
      data.addColumn('string', 'Year'); 
      data.addColumn('number', 'Sales'); 
      data.addColumn('number', 'Expenses'); 
      data.addRows(a.test); 


      var options = { 
          title: 'Company Performance' 
         }; 

      var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
      chart.draw(data, options); 
     } 

는 "a.test"는 다음과 같다 문자열을 검색

하지만 난 이런 식으로 작동

data.addRows([['2004', 1000, 400],['2005', 1170, 460],['2006', 660, 1120],['2007', 1030, 540]]); 

에 직접 값을 넣어합니다.

내가 틀린 곳을 이해하는데 도움을 주시겠습니까?

감사합니다.

답변

4

addRows 방법은 배열의 배열이 아닌 문자열을 받아, 그래서 당신은 배열로 a.test을 변경하거나 JSON 문자열로 변경하고 그것에 JSON.parse 전화 중 하나를해야합니다 귀하의 답변에 대한

// note that the internal quotes are double-quotes here, as that is required by JSON 
var foo = '[["2004", 1000, 400],["2005", 1170, 460],["2006", 660, 1120],["2007", 1030, 540]]'; 
data.addRows(JSON.parse(foo)); 
+0

감사합니다 . 내 함수에 코드를 직접 넣으려고했지만 여전히 작동하지 않습니다. : -/ – user1723319

+0

http://jsfiddle.net/asgallant/hyRdR/. 이 메서드를 사용하려면 JSON 사양과 호환되도록 문자열 내부의 따옴표를 작은 따옴표에서 큰 따옴표로 변경해야합니다. – asgallant

+0

감사합니다! 페이지 상단의 을 놓친 것이 문제였습니다! :-) 이제 작동합니다! 도움을 많이 주셔서 감사합니다 !!! – user1723319