ajax 呼び出しで、JSON オブジェクトを取得し、長さプロパティを通じて結果の数をカウントします。しかし、別のコードでは、同じ種類の呼び出しとサーバー側スクリプトへのわずかな変更により、長さプロパティは常に未定義のままになります。なんで?開発者コンソールでは、msg は配列ではなく、オブジェクトのように扱われることに注意してください (JSON から ajax によって自動的に変換されます)。
$.ajax({
url : 'richiediListaVideo.php',
type : 'POST',
data : data,
dataType : 'json',
success : function (msg)
{
alert(msg['videos'].length)
},
「未定義」の長さが次のようなオブジェクト
-video
--title
--duration
---tags
---8 "funny"
---1352 "animals"
---13 "Tv"
私の目標は、タグの長さを取得することであり、msg['video']['tags'].lengthを書きました。
これは「msg」の文字列化されたバージョンです
{"video":{"duration":"5:51","views":"2650","video_id":"512498","rating":"5.00","ratings":"5","title ":"素敵な犬", "publish_date":"2013-08-05 16:50:08","tags":{"8":"面白い", "54":"笑","75":"動物","89":"庭"}}}
明確化: とにかく、タグの数を数える方法は知っていますが、ポイントは、なぜこれが起こるのかを本当に知りたいということです
とにかく、タグの数を数える方法を知っています
var length=0;
for(var elemy in res['video']['tags']) length++
しかし要点は、なぜこれが起こるのかを本当に知りたいということです