teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

コメントを追加

2018/04/14 17:26

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -64,4 +64,18 @@
64
64
  "name": "sample3"
65
65
  }
66
66
  ]
67
- ```
67
+ ```
68
+
69
+ ---
70
+
71
+ > parsererror SyntaxError: Unexpected token < in JSON at position 0
72
+ というもので、カンマとは関係がありません。
73
+ やはりサーバー内の外部ファイルを読み込もうとすると無条件で全てこのエラーになるんですよね...。
74
+
75
+ 実際にサーバーから送られてきている(とされる)JSONをscript要素で受け, WEBブラウザの開発者ツールからどのようなテキストデータとして渡されてきているのかを確認して下さい.
76
+ これで間違ってHTMLなど送ってきているようでしたら, WEBサーバーの設定が壊れています.
77
+
78
+ ```HTML
79
+ <script src="new_data.json"></script>
80
+ ```
81
+ NOTE:いくら何でもデバッグ力が低すぎませんか?

3

JSONの書式についてのコメントを追加

2018/04/14 17:26

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -37,4 +37,31 @@
37
37
 
38
38
  参考
39
39
  小粋空間:jQueryのgetJSON()でエラーをハンドリングする
40
- [http://www.koikikukan.com/archives/2012/12/11-005555.php](http://www.koikikukan.com/archives/2012/12/11-005555.php)
40
+ [http://www.koikikukan.com/archives/2012/12/11-005555.php](http://www.koikikukan.com/archives/2012/12/11-005555.php)
41
+
42
+ ---
43
+
44
+ JSONの書式にエラーがあります. `,`が多いのでJavaScriptオブジェクトへのパース時にエラーとなっています.
45
+
46
+ ```JSON
47
+ [
48
+ {
49
+ "body": "\u3002",
50
+ "lat": 35.668416,
51
+ "lng": 139.728201,
52
+ "name": "sample1"
53
+ },
54
+ {
55
+ "body": "\u3002",
56
+ "lat": 35.868416,
57
+ "lng": 139.728201,
58
+ "name": "sample2"
59
+ },
60
+ {
61
+ "body": "\u4e43\u3002",
62
+ "lat": 35.674565,
63
+ "lng": 139.71699,
64
+ "name": "sample3"
65
+ }
66
+ ]
67
+ ```

2

コードを修正

2018/04/14 07:47

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -17,15 +17,24 @@
17
17
  }
18
18
  */
19
19
  function loadJson_and_addMarkers(){
20
- $.getJSON("new_data.json" , function(json) {
20
+ $.getJSON("new_data.json" , function() {
21
+ console.log("リクエスト送信");
22
+ }).success(function(json){
21
23
  console.log(json);//JSONの中身を確認
22
24
  for(var i = 0; i < json.length; i++){
23
25
  addMarker(json[i]);
24
26
  }
27
+ }).error(function(req, status, err){
28
+ console.log(status, err);
25
29
  });
26
30
  }
27
31
  ```
28
32
 
29
33
  としたら動きませんか?→一応200が返ってきた
34
+ →JSONはsuccess内で取得する
30
35
  後はJSONの中身を確認し, `addMarker`に正しくデータを渡せているかを確認して下さい.
31
- (以降はAPIの使い方の確からしさになるので, 勝手ながらこれ以上のサポートはできかねます)
36
+ (以降はAPIの使い方の確からしさになるので, 勝手ながらこれ以上のサポートはできかねます)
37
+
38
+ 参考
39
+ 小粋空間:jQueryのgetJSON()でエラーをハンドリングする
40
+ [http://www.koikikukan.com/archives/2012/12/11-005555.php](http://www.koikikukan.com/archives/2012/12/11-005555.php)

1

コメントを追加

2018/04/14 07:17

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -18,6 +18,7 @@
18
18
  */
19
19
  function loadJson_and_addMarkers(){
20
20
  $.getJSON("new_data.json" , function(json) {
21
+ console.log(json);//JSONの中身を確認
21
22
  for(var i = 0; i < json.length; i++){
22
23
  addMarker(json[i]);
23
24
  }
@@ -25,4 +26,6 @@
25
26
  }
26
27
  ```
27
28
 
28
- としたら動きませんか?
29
+ としたら動きませんか?→一応200が返ってきた
30
+ 後はJSONの中身を確認し, `addMarker`に正しくデータを渡せているかを確認して下さい.
31
+ (以降はAPIの使い方の確からしさになるので, 勝手ながらこれ以上のサポートはできかねます)