Chrome处理JSON数据时的特殊之处
有JSON字符串如下:
?
var cities = {"2":{"id":"2","name":"shanghai"},"1":{"id":"1","name":"beijing"},"4":{"id":"4","name":"shenzhen"},"3":{"id":"3","name":"xianggang"}};
?
?遍历该JSON对象,将其顺序打印出来,Chrome会和其他浏览器得到不同的结果。
?
<script>var cities = {"2":{"id":"2","name":"shanghai"},"1":{"id":"1","name":"beijing"},"4":{"id":"4","name":"shenzhen"},"3":{"id":"3","name":"xianggang"}};var row;for(i in cities){row = "ID:"+cities[i].id+",Name:"+cities[i].name+"<br />";document.write(row);}</script>
?
?IE、Firefox及Safari得到结果均为:
<script>/*var cities = {"b":{"id":"2","name":"shanghai"},"a":{"id":"1","name":"beijing"},"d":{"id":"4","name":"shenzhen"},"c":{"id":"3","name":"xianggang"}};*/var cities = [{"id":"2","name":"shanghai"},{"id":"1","name":"beijing"},{"id":"4","name":"shenzhen"},{"id":"3","name":"xianggang"}];var row;for(i in cities){row = "ID:"+cities[i].id+",Name:"+cities[i].name+"<br />";document.write(row);}</script>?则各浏览器下结果均为:
?
ID:2,Name:shanghaiID:1,Name:beijing
ID:4,Name:shenzhen
ID:3,Name:xianggang?
?