我想在我的Javascript中将一个字符串转换为JSON对象。当我转换为Json对象时,String中的日期完全改变了
这是我的字符串
var JsonData=[[2013-02-27,787],[2013-02-26,131],[2013-02-02,0],[2013-01-20,8],[2012-12-28,12]]
我正在使用以下
转换为JSON对象var json = eval( JsonData );
然后我在警告中得到以下结果
1984,787,1985,131,2009,0,1992,8,1972,12
有人可以指导我吗?我该如何解决这个问题?
现在我收到了以下错误
Timestamp: 3/7/2013 1:10:36 PM
Error: TypeError: this.proxy.getTime is not a function
在我的javascript中的某个地方。所以我认为它因为Json Object中的日期没有正确转换而已...它是如此?有人可以引导吗?
答案 0 :(得分:3)
不要使用eval()
使用 JSON.parse()将字符串转换为json对象。另外,由于您的JsonData无效JSON,请同时使用 JSON.stringify()。
var JsonData = [[2013-02-27,787],[2013-02-26,131],[2013-02-02,0],[2013-01-20,8],[2012-12-28,12]];
JSONObject = JSON.parse(JSON.stringify(JsonData));
答案 1 :(得分:1)
<script>
var JsonData=[[2013-02-27,787],[2013-02-26,131],[2013-02-02,0],[2013-01-20,8],["2012-12-28,12"],["Fri May 04 2012 01:17:07 GMT-0700 (PDT)"]]
var json = eval( JsonData );
alert(json);
</script>
然后我得到的结果是1984,787,1985,131,2009,0,1992,8,2012-12-28,12,Fri May 04 2012 01:17:07 GMT-0700(PDT)。所以我认为日期应该用双引号括起来。 我希望这会有所帮助。