2017-02-07 16 views
0
<html> 
<head> 
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js"> 
</script> 
<script> 

function readFile() { 

$.getJSON("http://www.ellatha.com/apitest.asp", function(data) { 

$("#channel").text(data['channel']['display_name']); 
$("#id").text(data['channel']['_id']); 

}); 
    } 

$(function() { 
    setInterval(function() { readFile() },1000); 
}); 

</script> 
</head> 

<body> 
<div id="channel"></div> - <div id="id"></div> 
</html> 

私は私が原因このJSONの例では、ネストされたどのように構文上の問題を持っているかなり確信している...誰が正しい方向に私を指すことができた場合に感謝されます! JsonのデータはASPページにあります。私は未加工のjsonが問題ではないと信じています。jQueryの - getJSONの書式ヘルプ/構文

Jsonファイルは基本的にストリームの総数(http://imgur.com/a/t4K3j)を示し、ストリームブロックの内側には各ストリームのすべての異なるデータポイントがリストされます(http://imgur.com/a/DYtiv)。私は基本的にすべてのチャンネルとそのIDのリストを作成したいと思います。

+0

'$("#channel ")を試しましたか?text(data ['streams'] ['channel'] ['display_name']); ' – jonmrich

+0

* raw * JSON出力を提供できますか? 1つの辞書の配列を返している可能性があります。データ[0] ['channel'] ['display_name']を実行する必要があるかもしれません。 –

+0

data ['streams'] ['channel'] ['display_name'] –

答えて

0

まず、JSONを解析する必要があります。あなたのJSON出力を見ると

var obj = jQuery.parseJSON(data); 
$("#channel").text(obj.channel.display_name); 
//OR $("#channel").text(obj.stream.channel.display_name); 
0

次の2つのオブジェクトの辞書あります_totalstreamsを。

_total文字列streamsあるリストは、あなたのJSON出力の簡易版

である:それは辞書は中括弧{ある}とリストがあることを知っている価値がある

{ 
    "_total": 19, 
    "streams: [ 
        { 
         "id": 0, 
         "channel": { 
            "display_name": "Daopa", 
            "game": "EVE Online" 
           } 
        }, 
        { 
         "id": 1, 
         "channel": { 
            "display_name": "Name_2", 
            "game": "League of Legends" 
           } 
        }, 
        { 
         "id": 2, 
         "channel": { 
            "display_name": "Name_3", 
            "game": "Dota 2" 
           } 
        } 
      ] 
} 

角括弧 [ ]。

{辞書は}それらキー、例えばによって参照されつつ、0から始まるそれら指数によって参照されている[リスト] "display_name"または"channel"

表示名を取得するには、辞書のリストを含むストリーム辞書から始めます。これらの辞書にはidとのchannel辞書が含まれています。

ので、データを取得します

data["streams"][0]["id"] // provides id 
data["streams"][0]["channel"]["display_name"] // provides display name 

0は、リストの最初のオブジェクトです。 data["streams"].lengthを使用して、リスト内のすべてのオブジェクトをループするオブジェクトの数を見つけることができます。