0

これを検索しましたが、何もヒットしませんでした。

現在、JSON.net ライブラリの例を調べて、それらから実際のシナリオを作成しています。私が苦労していることの 1 つは、不明な数の結果がある場合に JSON 応答をループすることです。

結果が1つある場合、解析されたJSONオブジェクトを角括弧で囲むことにより、単一アイテムの配列を作成できることを知っています。

$.each([res], function (key, value) {
    //code here
});

複数ある場合はオブジェクトをラップしないでください。

両方のシナリオを処理できるように、この各呼び出しを柔軟にするにはどうすればよいですか?

前もって感謝します、ブレット

4

1 に答える 1

0

本当にこのようにしたい場合は、「res」変数をタイプチェックし、そうでない場合にのみラップすることができます。それは本当にセクシーなコードではありません。 isArray() 関数などでラップしない場合は、必ずレガシーのためにコメントしてください:)

$.each((Object.prototype.toString.call(res) === '[object Array]') ? res : [res], function (key, value) {
    //code here
});

編集: @Klaasman が指摘したように、jQuery の isArray() 関数を使用できます。だからそれはなる

$.each($.isArray(res) ? res : [res], function (key, value) {
    //code here
});
于 2013-05-07T15:32:05.600 に答える