计算机不会解析JSON文件

时间:2014-04-25 00:38:12

标签: javascript json maps

所以我一直致力于一个允许用户将JSON文件导入Google Map的项目。我创建了一个“loaded()”函数来解析导入的文件,以便循环它。它在我的笔记本电脑上100%工作,但每当我在同一个网页浏览器(chrome)上运行相同的程序时,它无法解析导致程序崩溃的导入字符串,而不会在地图上绘制任何内容。

function importJSON(){
                var file = document.getElementById('file').files[0];

                var reader = new FileReader();

                reader.readAsText(file, "UTF-8");
                reader.onload = loaded;
            }

            function loaded(evt) {
                alert("File Loaded Successfully");
                var fileString = evt.target.result;
                $("#feed").text(fileString);

                var locationData = JSON.parse(fileString);


                //Test alert**
                //alert(locationData.locations[4].name);

                for(var i=0; i<=locationData.locations.length; i++){
                    var data = locationData.locations[i];

                    if(data.type=="marker"){

                        var locationLatLng = new google.maps.LatLng(data.lat, data.lng);

                        //Creates marker and sets it on the map
                        var marker = new google.maps.Marker({
                            position: locationLatLng,
                            map: map,
                            editable: true,
                            draggable: true

                        });
                        marker.setMap(map);
                    }

                    else if(data.type=="rec"){
                        alert("rectangle");
                    }
                }
            }   

如果有人知道可能出现什么问题,我将非常感谢您的帮助。

**编辑:**我已经验证我的JSON文件格式正确,但我会在下面发布。我在Google Chrome调试器中遇到的错误是“未捕获的语法错误意外编号”。据我所知,造成问题的那一行是“var locationData = JSON.parse(fileString);”

{
"locations": [
    {
        "id": "ce",
        "type": "marker",
        "name": "Centennial East (CE)",
        "lat": 40.50705,
        "lng": -88.98982
    },
    {
        "id": "sfhb",
        "type": "rec",
        "name": "State Farm Hall of Business (SFHB)",
        "lat": 40.50715,
        "lng": -88.99214
    }
]

}

0 个答案:

没有答案