2013-07-02 61 views
0

我对JSON有点新,但是这里有。我正在使用谷歌图表,并试图找出如何使用JavaScript对json_encode进行排序。通过JSON值排序?

格式谷歌图表预计是:

data.addRow([new Date(2008,0,1),0,0,0,3,0,0]); 

我json_encode的样子:

[[new Date(2008,0,1),0,0,0,3,0,0],[new Date(2008,0,1),0,0,0,1,0,0],[new Date(2008,0,1),0,0,1,0,0,0],[new Date(2008,0,1),0,2,0,0,0,0],[new Date(2008,0,1),42,0,0,0,0,0],[new Date(2008,0,1),20,0,0,0,0,0]] 

我基本上是这样的编码它(PHP端)并返回$通过AJAX调用导致:

$test = json_encode($charts_count_history, JSON_NUMERIC_CHECK); 
$result = str_replace(array('\'', '"'), '', $test); 

jsonData是存储json_encode的变量(字符串?数组?不确定wha吨打电话给这个)。我的问题是我怎么能通过jsonData排序和(例如)提醒每个值?也许像下面的东西?

for(//Not sure what would go here) 
{ 
alert(jsonData[0][0]); 
} 

我知道我可能应该这样做,所以任何帮助表示赞赏!

+1

无关,与JSON(JSON仅仅是*文本*;它是在JavaScript中处理数据*时的JavaScript对象)。无论如何,试图找到有用的搜索结果的措辞是[“JavaScript中的自定义排序”](http://stackoverflow.com/search?q=%5Bjavascript%5D+custom+sort)或类似的。 – user2246674

+1

此外,[迭代](http://en.wikipedia.org/wiki/Iteration)!= [排序](https://en.wikipedia.org/wiki/Sorting_algorithm)。如果需要排序,*定义排序规则*很重要。 – user2246674

+0

好的呼吁迭代与排序,术语是我绝对可以改进的一件事。 –

回答

0

当您将数据编码为JSON时,它的类型是一个字符串。另外要注意,当你构建JSON:

[[new Date(2008,0,1),0,0,0,3,0,0],[new Date(2008,0,1),0,0,0,1,0,0],[new Date(2008,0,1),0,0,1,0,0,0],[new Date(2008,0,1),0,2,0,0,0,0],[new Date(2008,0,1),42,0,0,0,0,0],[new Date(2008,0,1),20,0,0,0,0,0]] 

应该

[new Date(), new Date(), ... , new Date()] 

要遍历JavaScript中的上述JSON:

for(var i = 0; i < jsonData.length; i++) { 
    alert(json[i]); 
} 
+1

提供的JSON很好。虽然我不知道*其他值是什么意思,它是如何编码并由PHP返回的。返回看起来更好看的JSON可能是明智的,但这是另一个问题。 – user2246674