1

我想在我的 Javascript 中将一个字符串转换为 JSON 对象。当我转换为 Json 对象时,字符串中的日期完全改变了

这是我的字符串

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中正确转换..是这样吗?有人可以指导吗?

4

2 回答 2

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));
于 2013-03-07T07:30:13.037 回答
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)。所以我认为日期应该用双引号引起来。我希望这有帮助。

于 2013-03-07T07:27:27.030 回答