1

私はJavaScriptが初めてです。私の JavaScript (script.js) は、以下に示すように JSON ファイルから読み取ります。スクリプトは、JQuery を使用せずに読み取ります。このサイトを参考にしました。

function readJSON() {
  var LatLongData = JSON.parse(data);
  var LatLng1 = new google.maps.LatLng(LatLongData[0]);
}

JavaScript と同じ場所に保存されている JSON ファイル (data.json) は次のとおりです。

{ "data": 
[
    {"latitude" : "40.10246648", "longitude" : "-83.14877599"}
]
} 

html ファイルは次のようになります。

<script type="text/javascript" src="data.json"></script>
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MyKey&sensor=true"></script>
<body onload="readJSON()">
  <div id="map-canvas"/>
</body>

JSON ファイル形式で 2 つのエラー (Chrome と Firebug の両方) が発生します。ただし、 JSON ファイルの形式が正しいことをオンライン ( http://jsonlint.com/ ) で確認しました。私が得るエラーは次のとおりです。

SyntaxError: missing ; before statement { "data":

ReferenceError: data is not defined  ---> var LatLongData = JSON.parse(data);

ここで何が間違っていますか?

4

2 に答える 2

3

そのようなjsonを読むことはできません。まず、 <script> タグを介して含めないでください。ajaxリクエストでjsonを取得する必要があります。jQuery の getJSON メソッドを確認することをお勧めします。

$.getJSON( "data.json", function( data ) {
   // now you can read the data
   var LatLongData = data;
   var LatLng1 = new google.maps.LatLng(LatLongData[0]);
});

あなたがやっていることは、jsonをjavascriptファイルとして含めることです。そのため、そのエラーが発生しました。次に、readJSONは、実際には定義されていないデータ変数を使用します。

于 2013-10-29T21:01:55.537 に答える