0

外部ソースからいくつかのデータをプルするための次のコードがあります。

    $(document).ready(function(){
        $.getJSON('mydata.json',function(data) {
            var ned = data.names.ned;
            return(ned);
        });
    });

そして私のJSONには次のものがあります:

    {
      "names": {
               "ned": "Eddard Stark",
               "jon": "Jon Snow",
               "tyrion": "Tyrion Lannister"
               }
    } 

別の関数で変数「 ned 」を使用する方法を知りたいです。また、後で使用できるように「jon」や「tyrion」などの他の変数をさらに設定したいのですが、それらを別の関数に渡すことはできません。

一部のアプリ関数を適切に使用できるようにするには、ページの読み込み時にJSONコールバックを実行する必要があります。そのため、JSONコールバックはドキュメントに対応しています。

4

2 に答える 2

2

あなたはjqueryを使ってそれを簡単に行うことができます$.Deferred

function getNed()
{
    return $.getJSON('mydata.json').pipe(function(data) {
        var ned = data.names.ned;
        return ned;
    });
}

getNed().done(function(ned) {
    alert(ned);
});
于 2012-06-13T23:06:25.167 に答える
0

これを行うための迅速で簡単な方法は、グローバル変数を宣言し、それを取得したときにjson呼び出しからのデータを入力することです。

<script> 
var myJsonData; //Make this a very unique name, as you may conflict with other variables in plugins and such.
$(document).ready(function(){
    $.getJSON('mydata.json',function(data) {
        myJsonData = data;
        var ned = data.names.ned;
        return(ned);
    });
});
</script>

ただし、getJSON呼び出しには長い時間がかかる可能性があるため、myJsonData使用する前に変数が未定義でないことを注意深く確認する必要があることに注意してください。または、jsonコールバックからある種の初期化関数を呼び出すこともできます。

于 2012-06-13T23:04:02.340 に答える