2011-08-16 70 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())。