2011-08-16 113 views
0

我在文件需要產生JSON在特定格式

var jsonfromfile = [ 
[Date.UTC(2004, 1, 3), 19.3], 
[Date.UTC(2004, 1, 10), 12.7], 
[Date.UTC(2004, 1, 17), 3.6], 
[Date.UTC(2004, 1, 24), 19.1], 
[Date.UTC(2004, 1, 31), 12.1], 
[Date.UTC(2004, 2, 7), 11.3], 
[Date.UTC(2004, 2, 28), 9.3], 
[Date.UTC(2004, 3, 6), 14.3], 
[Date.UTC(2004, 3, 13), 5.8], 
[Date.UTC(2004, 3, 20), 8.6], 
[Date.UTC(2004, 3, 27), 19.9], 
[Date.UTC(2004, 4, 3), 14.2], 
[Date.UTC(2004, 4, 10), 12.8], 
[Date.UTC(2004, 4, 17), 10.6], 
[Date.UTC(2004, 4, 24), 8.4], 
[Date.UTC(2004, 5, 1), 19.8], 
[Date.UTC(2004, 5, 8), 13.8] 
]; 

我使用作爲虛擬數據作出與此圖表http://www.highcharts.com/products/highstock第一個步驟具有這樣的JSON陣列。

現在我想使用動態數據與圖表,所以我有控制器,返回鍵 - 值數據

public virtual JsonResult GetData(int type) 
     {    
      Dictionary<string, decimal> data = getData(type);   

      return Json(data.ToArray(), JsonRequestBehavior.AllowGet); 
     } 

,我打電話與jQuery阿賈克斯該控制器。

var jsonFirstTry = {   
       data: [] 
      }; 

      $.ajax({ 

       url: actionUrl, 
       dataType: 'json', 
       cache: false, 
       data: { type: type }, 

       success: function (items) { 
        var jsonSecondTry = "["; 
        $.each(items, function (itemNo, item) { 

         jsonFirstTry.data.push(item.Key, item.Value); 

         jsonSecondTry += "[" + item.Key + "," + item.Value + "],"; 

        }) 

        jsonSecondTry = jsonSecondTry.substring(0, jsonSecondTry.length-1); 

        jsonSecondTry += "];"; 

        //... 
       } 
}); 

我試圖重現像js文件(jsonfromfilejsonFirstTryjsonSecondTry數據,但不能做的數據完全一樣的js文件

這裏是如何從js文件看在加載的數據調試這樣的: Json loaded from file

這裏是數據從我第一次看怎麼嘗試 FirstTry

這是第二次嘗試數據(但它僅僅是字符串,所以它不是圖表有效數據....)

Second try

,所以我需要生成相同的傑森喜歡在第一形象,任何想法如何我可以那樣做嗎?

回答

0

您的初始示例(var jsonfromfile = [...)不是JSON。它是一組數組(使用JavaScript),使用JavaScript的數組文字語法。

JSON是一個字符串,表示使用JavaScript對象文字語法的子集的序列化數據結構。 JSON不能有方法調用或方法定義。

因此,試圖以JSON格式提供您用作樣本數據的內容不起作用。您需要提供真實的JSON,並根據需要對其進行操作(在部分位置上調用Date.UTC())。