2012-04-11 2 views
0

입력이 일부 형식처럼 보이는 차트 라이브러리를 사용하고 있습니다. 이 형식은 JSON처럼 보이지만 그렇지 않다, 그리고 나는 여기 형식에 대한 아이디어를 얻기 위해 일부 데이터를 공유 :데이터를 JSON 형식과 같은 형식으로 지정하십시오.

[{ 
        year: 2005, 
        income: 23.5, 
        expenses: 18.1 
       }, { 
        year: 2006, 
        income: 26.2, 
        expenses: 22.8 
       }, { 
        year: 2007, 
        income: 30.1, 
        expenses: 23.9 
       }, { 
        year: 2008, 
        income: 29.5, 
        expenses: 25.1 
       }, { 
        year: 2009, 
        income: 24.6, 
        expenses: 25.0 
       }]; 

당신은 this link에 전체 예를 볼 수 있습니다. 첫 번째 테스트에서는 String.concat(anotherString)을 사용했지만 안심할 수 있습니다. 그래서이 형식을 제공하는 자바 API가 무엇입니까? 미리 감사드립니다.

+0

JSON을 수용 할만한 JSON에 충분히 근접해 있습니다. 잘못된 JSON을 만드는 유일한 방법은 키 이름을 따옴표로 묶지 않는 것입니다. – Corbin

+0

JSON과는 달리 자바 스크립트처럼 보입니다. 그렇다면 JSON을 대신 사용할 수 있어야하며 모든 것이 제대로 작동해야합니다. –

+1

키 이름을 따옴표로 묶지 않는 것이 자바 스크립트입니다. 이것은 자바 스크립트 예제에서 직접 가져온 것입니다. ** 형식 **이 필요한 경우 json 형식화 프로그램을 사용하고 jsonString.replace ("\" "," ") – Joel

답변

1

글쎄, 그 형식과 JSON 사이의 유일한 차이점은 문자열에서 큰 따옴표를 제거해야한다는 것입니다.

실제로이 예제를 읽으면 유효한 JSON을 받아 들일 것이므로, $ .ajax() 메소드를 사용해보십시오. 과 같습니다.

AmCharts.ready(function() {$.ajax({ 
     url: '/mydata/', 
     dataType: 'json', 
     data: undefined, 
     success: function(chartData) { 
       // SERIAL CHART 
       chart = new AmCharts.AmSerialChart(); 
       chart.dataProvider = chartData; 
       chart.categoryField = "year"; 

       // AXES 
       // category 
       var categoryAxis = chart.categoryAxis; 
       categoryAxis.gridAlpha = 0.1; 
       categoryAxis.axisAlpha = 0; 
       categoryAxis.gridPosition = "start"; 

       // value 
       var valueAxis = new AmCharts.ValueAxis(); 
       valueAxis.stackType = "regular"; 
       valueAxis.gridAlpha = 0.1; 
       valueAxis.axisAlpha = 0; 
       chart.addValueAxis(valueAxis); 

       // GRAPHS 
       // first graph  
       var graph = new AmCharts.AmGraph(); 
       graph.title = "Europe"; 
       graph.labelText = "[[value]]"; 
       graph.valueField = "europe"; 
       graph.type = "column"; 
       graph.lineAlpha = 0; 
       graph.fillAlphas = 1; 
       graph.lineColor = "#C72C95"; 
       chart.addGraph(graph); 

       // second graph    
       graph = new AmCharts.AmGraph(); 
       graph.title = "North America"; 
       graph.labelText = "[[value]]"; 
       graph.valueField = "namerica"; 
       graph.type = "column"; 
       graph.lineAlpha = 0; 
       graph.fillAlphas = 1; 
       graph.lineColor = "#D8E0BD"; 
       chart.addGraph(graph); 

       // third graph        
       graph = new AmCharts.AmGraph(); 
       graph.title = "Asia-Pacific"; 
       graph.labelText = "[[value]]"; 
       graph.valueField = "asia"; 
       graph.type = "column"; 
       graph.lineAlpha = 0; 
       graph.fillAlphas = 1; 
       graph.lineColor = "#B3DBD4"; 
       chart.addGraph(graph); 

       // LEGEND     
       var legend = new AmCharts.AmLegend(); 
       chart.addLegend(legend); 

       // WRITE 
       chart.write("chartdiv"); 
      }); 
     } 
    }); 

이 (죄송합니다, 제가 지금까지 자바 스크립트를 작성 잘되는 해요,하지만 난 생각이 있다고 생각) 또한, 어쩌면 amCharts의 API는 direcly 로컬 URL을 확인할 수 있습니다. 그런 다음 JSON 데이터를 REST 호출로 라우팅하면됩니다.

+0

죄송합니다 @ Zmo,하지만 당신이 $ .ajax() 메서드가 무슨 뜻인지 이해가 안돼 ?? –

+0

잘, 클라이언트 엔드 포인트에서 자바 스크립트 서비스를 통해 서버의 JSON 데이터를 다운로드하고 역 직렬화 할 수있는 jquery의 $ .ajax() 메소드 호출을 사용하는 것이 좋습니다. 유일한 것은 자바 스크립트 코드가 매우 못생긴 (이모) 경향이 있다는 것입니다. – zmo

+0

좋아요. 요점이 있습니다.이것은 클라이언트 측에서 네이티브 javascript를 사용하는 것이 좋은 생각이지만, 제 경우에는 GWT를 사용하여 원격 호출 메서드를 사용하도록하고 있습니다. 도움을 주셔서 감사합니다. –

0

chk이 API의 데이터 관련 블로그 페이지

http://blog.amcharts.com/2011/03/amcharts-javascript-tutorials-part-2.html 

나는이 튜토리얼 예제 코드의 많은,이 API의 데이터를 처리에 대한 모든 핵심적으로의 gritties을 알려줍니다

0

해결책은 간단 니펫 생각 :

VAR chartData = 평가 (json_data);

최고 감사합니다.

관련 문제