2017-03-09 32 views
1

我曾經從數據庫中獲取數據,然後將數據傳遞給Json並將其推送到數組中以在Highcharts上使用。從Webservice管理數據到Highcharts

現在,我有一種新的方式來從web服務獲取數據,我很擔心我如何傳遞數據。

從數據庫

[HttpGet] 
public JsonResult EsperaHora(string data1, string data2, int? cliente) 
{ 

    var voiceData = new KiperVoiceData(cliente); 
    var media = voiceData.GetEsperaData(data1, data2); 
    var atend = voiceData.GetEsperaHora(data1, data2); 
    var result = new { atend, media }; 

    return Json(result, JsonRequestBehavior.AllowGet); 
} 

Data Return

舊的方式對JS文件

$.ajax({ 
      url: '/KiperVoice/EsperaHora', 
      dataType: "json", 
      type: "GET", 
      data: { 'data1': data1, 'data2': data2, 'cliente': cliente }, 
      success: function (data) { 

        var Categories = new Array(); 
        var Series = new Array(); 
        var Series2 = new Array(); 
        var media = data.media; 
        var total = 0; 

        for (var i in data.atend) { 
         Categories.push(data.atend[i].Hora); 
         Series.push(data.atend[i].Espera); 
         Series2.push(data.atend[i].Qtde); 
         total += parseInt(data.atend[i].Qtde); 
        } 

        $('#media').val(media); 
        $('#total').val(total); 

        var HoraArray = JSON.parse(JSON.stringify(Categories)); 
        atendHora(HoraArray, Series); 
        atendQtde(HoraArray, Series2); 
       } 
      }, 

它的做工非常精細,但是現在,我需要去的數據從一個web服務的Json如下圖所示:

Json的新方式

[HttpGet] 
public JsonResult EsperaHora3(string data1, string data2, int? cliente) 
{    
    string WEBSERVICE_URL = "http://187.49.236.29:3010/report/waithour?from=" + data1 + "&to=" + data2 + "&queue=Base"; 

    var webRequest = WebRequest.Create(WEBSERVICE_URL); 

    if (webRequest != null) 
     { 
      webRequest.Method = "GET"; 
      webRequest.Timeout = 20000; 
      webRequest.ContentType = "application/json"; 

      using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream()) 
       { 
        using (System.IO.StreamReader sr = new System.IO.StreamReader(s)) 
         { 
          var jsonResponse = JsonConvert.DeserializeObject<List<APIVoice>>(sr.ReadToEnd());  

         } 
        } 
       } 


       return Json(true, JsonRequestBehavior.AllowGet); 
      } 

Json Data

[{"key":"10:00","value":{"total":2,"avg":20}}, 
    {"key":"11:00","value":{"total":4,"avg":25.5}}, 
    {"key":"14:00","value":{"total":3,"avg":5.33}] 

其中:

Key = Hora 
Qtde = total 
Espera = avg 

回答

0

我已經找到了解決方案!

$.ajax({ 
      url: '/KiperVoice/EsperaHora3', 
      dataType: "json", 
      type: "GET", 
      data: { 'data1': data1, 'data2': data2, 'cliente': cliente }, 
      success: function (data) { 

        var Categories = new Array(); 
        var Series = new Array(); 
        var Series2 = new Array(); 


        for (var i in data) { 

         Categories.push(data[i].Key); 
         Series.push(parseInt(data[i].value.avg)); 
         Series2.push(data[i].value.total); 

        }     

        var HoraArray = JSON.parse(JSON.stringify(Categories)); 
        atendHora(HoraArray, Series); 
        atendQtde(HoraArray, Series2); 
       } 
      }, 

這是最奇怪的我想過!