0

私はJavaScriptが比較的新しいので、かなりの質問があります。yahoo 金融の Web サービスから株式情報を取得し、Web サイトに表示するアプリケーションを作成し始めました。簡単ですね。私もそう思いましたが、返ってきたデータを操作するのに苦労しています。誰かが私がこれを機能させるのを手伝ってくれるかもしれません。この時点で、私は本当に近くにいるように感じます。

ユーザーは、AAPL や GOOG など、選択した株式を stockTextBox に入力します。次に、連結を使用してスクリプト属性を設定します。現在、confirm() 行は非常に奇妙です。そこにその確認がない場合、関数 myCallBack のアラートは実行されないようです。これはまったく説明できません。多分私は今私がすべきことをしていません。

ここでデバッグすると、株式情報がウェブサイトから返されていることがわかります。最初にコードがあり、次に JSON データがあります。誰かがこのことを機能させるのを手伝ってくれたら、心から感謝します。私は今、数時間それをいじっています。ありがとう!つまり、私の質問は、Web サービスから取得したデータを自分の Web ページに表示するにはどうすればよいかということです。

<form id="stockInput">
Stock Name: <input type="text" id="stockTextBox">
<input type="submit" id="submitButton" value="Submit">
</form>
</b>
<label id="stockLabel"></label>
<script>

var submitButton = document.getElementById("submitButton");
submitButton.addEventListener('click', actionPerformed, false);

function actionPerformed(e)
{

        var textValue = document.getElementById("stockTextBox").value;

        //tried to put to an element and then read the element value down below through concatenation in the src...
    //document.getElementById("stockLabel").innerHTML = textValue;

    var script = document.createElement('script');
    script.setAttribute('src',"http://finance.yahoo.com/webservice/v1/symbols/"+textValue+"/quote?format=json&callback=myCallBack");
    document.body.appendChild(script);
    confirm(); //ODD POINT...


 }
 function myCallBack(data)
 {
   alert("HEY" + data);

   //What I thought I would do. This doesn't output the right info.
   //for(key in data)
   //{

    //alert(data[key]);
   //}



 }

</script>
</body>
</html>

これが、Firefox を介してデバッガーで確認できる JSON です。

myCallBack({
    "list": {
        "meta": {
            "type": "resource-list",
                "start": 0,
                "count": 1
        },
            "resources": [{
            "resource": {
                "classname": "Quote",
                    "fields": {
                    "name": "Google Inc.",
                        "price": "1030.579956",
                        "symbol": "GOOG",
                        "ts": "1383249600",
                        "type": "equity",
                        "utctime": "2013-10-31T20:00:00+0000",
                        "volume": "1640035"
                }
            }
        }

        ]
    }
});
4

2 に答える 2

2

データ型を表示しているため、[object] しか表示されていません。データを取得するには、オブジェクトの属性を取得する必要があります。JSON データは、JSON が JavaScript Object Notation の略であることから、JavaScript から非常にアクセスしやすくなっています。

データは基本的に、属性を持つオブジェクトとオブジェクトのリストで構成されているため、開始すると非常に簡単です。変数データはルート オブジェクトであり、その下のすべてに簡単にアクセスできます。

データ内の特定のものにアクセスする方法の例をいくつか示します。

属性「名前」:

alert(data.list.resources[0].resource.fields.name);

属性「クラス名」:

alert(data.list.resources[0].resource.classname);

これは、Javascript オブジェクトの単なるテキスト表現です。「resources」はオブジェクトのリスト、「list」はオブジェクト、「fields」はオブジェクト、「price」はデータを格納するためのキーと値のペアです。

詳細はこちら: http://www.json.org/ http://www.w3schools.com/json/

質問を誤解した場合はお知らせください。

于 2013-11-01T01:44:41.030 に答える