我在文件中有这样的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的第一步。
现在我想在图表中使用动态数据,所以我有控制器返回键值数据
public virtual JsonResult GetData(int type)
{
Dictionary<string, decimal> data = getData(type);
return Json(data.ToArray(), JsonRequestBehavior.AllowGet);
}
我用jquery ajax调用该控制器。
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文件(jsonfromfile
)jsonFirstTry
和jsonSecondTry
中的数据,但无法像js文件中那样完成数据
以下是从js文件加载的数据如何在调试中查找:
以下是我第一次尝试数据的方式
这是第二次尝试数据(但它只是字符串,因此它不是图表的有效数据....)
所以我需要像第一张图片一样生成相同的jason,任何想法我该怎么做?
答案 0 :(得分:0)
您的初始示例(var jsonfromfile = [...
)不是JSON。它是一个数组数组(在JavaScript中),使用JavaScript的数组文字语法。
JSON是一个表示序列化数据结构的字符串,使用JavaScript对象文字语法的子集。 JSON不能有方法调用或方法定义。
因此,尝试以JSON格式提供您用作样本数据的内容将无法正常工作。您需要提供真正的JSON并根据需要对其进行操作(在部分内容上调用Date.UTC()
)。