0

私はこの短いjsonファイルを持っています:

{"daten":[
    {
        "url":"destille",
        "lang":"de",
        "ausblenden": {
            "parts":"farben, sonstiges, material"
        }
    },
    {
        "url":"schnaps",
        "lang":"de",
        "ausblenden": {
            "parts":"farben, sonstiges"
        }
    }
]}

そして、リストされたデータの特定の部分、たとえば「schnaps」部分だけをロードしたいと思います。

 $.getJSON('data.json', function(data) {
        var output="<ul>";
        var uri = "schnaps";
        output+="<li>" + data.daten[uri].url + " " + data.daten[uri].ausblenden.parts+"</li>";


        output+="</ul>";
        document.getElementById("placeholder").innerHTML=output;
  });

これを取得する方法がわかりません。データ全体をロードするのは問題ありません...しかし、一部だけが難しいようです。

4

5 に答える 5

2

url パラメーターの値が「schnaps」であるオブジェクトを取得する場合は、次のようにします。

$.getJSON('data.json', function(data) {
  var objects = data.daten.filter(function(v){return v.url=="schnaps"});
  if (objects.length==0) return; // no object has url schnaps
  var obj = objects[0]; 
  output+="<li>" + obj.url + ... + obj.ausblenden + ...
  ...
于 2012-12-19T11:51:05.353 に答える
1

この部分では:

data.daten[uri].url

daten配列を参照し、uri(「schnaps」に設定されている)はその配列のキーである必要がありますが、そうではありません-「schnaps」はその配列urlのオブジェクトのプロパティです。

配列を反復処理するか、そうでなければフィルター処理して、その中にあるオブジェクトを取得する必要がありますurl === "schnaps"

于 2012-12-19T11:51:32.663 に答える
0

あなたにJSON datenはありますarrayが、schnapsそれはインデックスではありません。番号を使用してインデックスを作成する必要があります。

データを次のように変換できますか:

{
    "daten": {
        "destille": {
            "lang":"de",
            "ausblenden": {
                "parts":"farben, sonstiges, material"
            }
        },
        "schnaps": {
            "lang":"de",
            "ausblenden": {
                "parts":"farben, sonstiges"
            }
        }
    }
}
于 2012-12-19T11:50:38.373 に答える
0

あなたの配列は連想的ではありません。次のように繰り返す必要があります: data.daten[0].url これは、文字列をインデックスに渡してもどこにも到達しないためです。文字列で検索することによって、必要な機能を提供する他の配列検索メカニズムを検索することもできます。

于 2012-12-19T11:50:43.263 に答える
0

問題は、 を実行して目的の要素を選択できないことdata.daten["schnaps"]です。そのデータは JSON 配列にあるため、代わりdata.daten[1].urlにこれを行う必要があります。これにより、必要なデータが取得されます。

于 2012-12-19T11:50:58.740 に答える