jsonデータを持ってくるのに成功したと思ったら「undefined」が大量に表示されました。
エラーも特にでていません。記載したjsファイルは以下です。
javascript
1<html> 2<title>ta 3</title> 4<script type="text/javascript" src="js/jquery-1.3.2.js"></script> 5<script type="text/javascript"> 6$.ajax({ 7 type: 'GET', 8 url: 'http://localhost:8180/api/doubutu/search?q=', 9 datatype: 'json', 10 success: function(json){ 11 $.each(json, function(i, item){ 12 $('body').prepend(item.codename + '<br>'); 13 }); 14 }, 15 error: function(){ 16 alert('error'); 17 } 18}); 19 </script> 20 21 22</html>
ご存知の方宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
$('body').prepend(item.codename + '<br>');
ここですが、json 形式なので配列になりますね
item[0] か item['codename'] になると思います。
投稿2015/11/02 07:16
総合スコア366
0
ベストアンサー
すいません私のソースバグですね
html
1<html> 2<head> 3 <title>js sample</title> 4 <script type="text/javascript" src="jquery-1.9.0.min.js"></script> 5 <script type="text/javascript"> 6 7 //画面構築完了後 8 $(function() { 9 $("#btn_1").click(function(){ 10 $.ajax({ 11 type: 'GET', 12 url: 'http://aaa/sample.json', 13 dataType: 'jsonp', 14 jsonpCallback: 'data', 15 success: function(json){ 16 var rows = ""; 17 18 $.each(json, function(i, item){ 19 $('body').prepend(item.PageName + '<br>'); 20 21 $.each(item,function(key,value){ 22 rows += "<tr>"; 23 rows += "<td>"; 24 rows += key; 25 rows += "</td>"; 26 rows += "<td>"; 27 rows += value; 28 rows += "</td>"; 29 }); 30 31 }); 32 //テーブルに作成したhtmlを追加する 33 $("#tbl").append(rows); 34 } 35 }); 36 }); 37 }); 38 39 </script> 40</head> 41<body> 42 <table id="tbl" border="1"> 43 <tbody> 44 <tr> 45 <th>英語</th><th>日本語</th> 46 </tr> 47 </tbody> 48 </table> 49 <input id="btn_1" type="button" value="検索" /> 50</body> 51</html>
json
1data ( 2[ 3{ 4"id" : "51027617", 5"doubutu_id" : "4006464", 6"first_reg_daytime" : "2015-08-10T00:00:00.000+0000", 7"maker_cd" : "104", 8"kesyu_name" : "", 9"car_cd" : "10402008", 10"doubutu_name" : "neko", 11"inu_name" : "シャモニー", 12"model_year" : 2000, 13"model_num" : "07640", 14"model_name" : "PD6W", 15"regulation_class" : "GF"} 16] 17) 18;
上記の json 形式であれば、このソースで表示されました。
ポイントは、
1.$.each(json, function(i, item){ の中の $.each(item,function(key,value){です。
最初の each では、item の中に json のデータが全て入っているので
item をさらに each でプロパティを取得しています。
2.rows is not defined は rows を初期化していなかったからかもしれません。
投稿2015/11/04 05:52
総合スコア366
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
返ってきているjsonの形式が意図したものと違うのではないでしょうか。
そのため、$.eachのループ処理にて、
item.codename というプロパティに値が無く、
undefinedが返されているのではないでしょうか。
js
1 success: function(json){ 2 $.each(json, function(i, item){ 3 console.log('json -> ', json) // jsonの形式を確認する 4 console.log('item.codename ->', item.codename) // ここがundefinedになっている 5 $('body').prepend(item.codename + '<br>'); 6 }); 7 },
恐らく、
$('body').prepend(item.codename + '<br>');
ではなく、
$('body').prepend(item[i] + '<br>');
こうあるべきかと思います。
json
1{ 2 property1: value1, 3 property2: value2, 4 property3: value3, 5 property4: value4, 6}
投稿2015/11/02 07:16
編集2015/11/02 07:20総合スコア290
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/02 07:27

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/02 07:45 編集
2015/11/02 07:55
2015/11/02 09:18
2015/11/02 10:57
2015/11/04 05:27