2012-10-23 2 views
4

COSM 피드에서 JSON 형식의 데이터를 간단한 차트로 가져 오려고하는데 문제가 있습니다. 비록 내가 시리즈 배열이 어떻게 동작하는지 오해하고 있는지 잘 모르겠다. (심지어 을 살펴본 후에도)하이 차트가 내 JSON에서 UTC 값을 허용하지 않는 이유는 무엇입니까?

이것은 실험을 통해 얻은 코드이다. (결국 JSON 데이터를 루프를 통해 스트리밍하고 싶다. 하지만 지금 난 그냥 수동으로) 두 번째 데이터 포인트를 밀어 시도

$(document).ready(function(){ 
      var options = { 
        chart: { 
         renderTo: 'container', 
         type: 'line', 
         marginRight: 130, 
         marginBottom: 25 
        }, 
        title: { 
         text: 'Temperature', 
         x: -20 //center 
        }, 
        xAxis: { 
         //type: 'datetime', 
        }, 
        yAxis: { 
         title: { 
          text: 'Temperature (°C)' 
         }, 
         plotLines: [{ 
          value: 0, 
          width: 1, 
          color: '#808080' 
         }] 
        }, 
        tooltip: { 
         formatter: function() { 
           return '<b>'+ this.series.name +'</b><br/>'+ 
           this.x +': '+ this.y +'°C'; 
         } 
        }, 
        legend: { 
         layout: 'vertical', 
         align: 'right', 
         verticalAlign: 'top', 
         x: -10, 
         y: 100, 
         borderWidth: 0 
        }, 
        exporting: { 
         enabled: false 
        }, 
        series: [{"name":"Temperature", "data":[]}] 
      }; 
      $.getJSON('http://api.cosm.com/v2/feeds/79903.json?key=dNSiSvXZtR6QBUqbzll4CCgnngGSAKxIQVFSeXBneGpqWT0g', function(data) 
      { 
       var xval = data.datastreams[7].at; 
       var yval = parseFloat(data.datastreams[7].current_value); 
       alert(xval); 
       alert(yval); 
       var pointChart = new Array(xval, yval); 
       options.series[0].data.push(pointChart); 
       xval = data.datastreams[2].at; 
       yval = parseFloat(data.datastreams[2].current_value); 
       pointChart = [xval, yval]; 
       options.series[0].data.push(pointChart); 
       //options.series[0].data.push(data.datastreams[7].at, 25); 
       alert(options.series[0].data[0]); 
       alert(options.series[0].data[1]); 
      }); 
      var chart = new Highcharts.Chart(options); 
     }); 

JSON은 다음과 같습니다. 내가 알고있는 것처럼

{ 
    "version" : "1.0.0", 
    "created" : "2012-10-12T05:01:53.231981Z", 
    "status" : "live", 
    "location" : { 
    }, 
    "datastreams" : [{ 
     "max_value" : "100.0", 
     "min_value" : "0.0", 
     "at" : "2012-10-22T01:28:12.610947Z", 
     "id" : "Battery_Level", 
     "current_value" : "88" 
     }, { 
     "max_value" : "30431.0", 
     "min_value" : "-26691.0", 
     "at" : "2012-10-22T01:22:32.905001Z", 
     "id" : "Heading", 
     "current_value" : "95" 
     }, { 
     "max_value" : "64.9304", 
     "min_value" : "21.6153", 
     "at" : "2012-10-22T01:30:52.656318Z", 
     "unit" : { 
      "symbol" : "%" 
     }, 
     "id" : "Humidity", 
     "current_value" : "55.7556" 
     }, { 
     "max_value" : "32684.0", 
     "min_value" : "0.0", 
     "at" : "2012-10-22T01:30:52.656318Z", 
     "id" : "Light_Level", 
     "current_value" : "37" 
     }, { 
     "max_value" : "649994.0", 
     "min_value" : "-139994.0", 
     "at" : "2012-10-18T06:47:56.226880Z", 
     "unit" : { 
      "symbol" : "µT" 
     }, 
     "id" : "Magnetic_X", 
     "current_value" : "-24.90" 
     }, { 
     "max_value" : "99997.0", 
     "min_value" : "-9.9006731e+24", 
     "at" : "2012-10-18T06:47:56.226880Z", 
     "unit" : { 
      "symbol" : "µT" 
     }, 
     "id" : "Magnetic_Y", 
     "current_value" : "7.35" 
     }, { 
     "max_value" : "432.0", 
     "min_value" : "-3950.0", 
     "at" : "2012-10-18T06:47:56.226880Z", 
     "unit" : { 
      "symbol" : "µT" 
     }, 
     "id" : "Magnetic_Z", 
     "current_value" : "7.10" 
     }, { 
     "max_value" : "25.59", 
     "min_value" : "11.1", 
     "at" : "2012-10-22T01:30:52.656318Z", 
     "unit" : { 
      "symbol" : "°C" 
     }, 
     "id" : "Temperature", 
     "current_value" : "22.3800" 
    ], 
} 

는 Highcharts는 대한 UTC 형식의 날짜/시간 값을 받아 X 축 - JSON 수수료로 UTC가 제공되고 있습니까? 유효하지 않습니까?

답변

2

날짜와 시간 값을 Unix 타임 스탬프로 변환해야합니다. 그러면 Highcharts가이를 수락합니다.

Date.UTC(2010, 0, 1) 

날짜 객체를 자바에서 사용하는 방법은 this tutorial을 참조하십시오.

+0

감사합니다 ... 지금은 훨씬 더 의미가 있습니다! – user1767125