0

簡単に言えば、json get メソッドから文字列配列を作成しようとしています。このメソッドは、MVC コントローラー メソッドから取得したリストを返します。JsonResult output(string centreName)私の JavaScript では、次のようになります。

    <script src="../../Content/jquery.js"></script>
    <script type="text/javascript">
        jQuery(function () {
            jQuery("#centres").change(function () {
                var _this = jQuery(this);
                var selectedCentre = _this.val();
                $.getJSON("/Centres/output?centreName=" + selectedCentre, 
function(results) {
    // store the results here in a new array, so I can do something with them
                });
            });
        });
    </script>

上記のコードはすべて問題なく動作しますが、結果を適切に操作する方法がわかりません。「string array[] = results」のようなものを作成するにはどうすればよいですか?

編集

これは、結果を文字列の配列として必要とするメソッドです。

document.getElementById("container2").innerHTML = "";
                        var div;
                        for (var i = 0; i < document.getElementById("centres").value; i++) {
                            div = document.createElement("div");
                            div.className = "class1";
                            div.innerHTML = "Shop " + data[i];
                            div.innerHTML += "<br>";
                            div.innerHTML += "Floor Space: <b>" + spaces[i] + " m2 </b>";
                            div.style.width = "100px";
                            div.style.height = "100px";
                            div.style.padding = "0px";
                            div.style.float = "left";
                            document.getElementById("container2").appendChild(div);
                        }

ご覧のとおり、各店舗コード (data[i]) を反復処理する必要があります。どうすればいいですか?

4

2 に答える 2

1

素敵な「文字列配列[]」に保存する必要はありません。.NET JSON シリアライザーは、基本的に配列のような構造である JSON をシリアル化する必要があります。結果に直接アクセスするだけです。

$.getJSON("/Centres/output?centreName=" + selectedCentre, function(results) {
    var data = results;

    // You can iterate over the data (or results directly) and manipulate it as needed
});
于 2013-03-13T21:43:52.517 に答える
1

json ユニバースでは、リストと配列は同じです。には特定の実装はありませんList。配列があるだけです。サーバーが単一のオブジェクトを返さない限り、おそらくresultsすでにオブジェクトの配列です。

オブジェクトから特定のフィールドを抽出しようとしている場合は、$.each()ステートメントを使用して配列を反復処理し、必要な情報を取得できます。

$.each(results, function(index, element) {
  // your logic here
}

編集

resultsが文字列の配列であり、それらを単一の文字列に変換する必要がある場合は、メソッドを使用できjoinます

var results = ["Banana", "Orange", "Apple", "Mango"];
var joinedString = results.join();
//joinedString = 'Banana,Orange,Apple,Mango'

別のセパレータを選択する必要がある場合は、このアプローチを使用できます

var results = ["Banana", "Orange", "Apple", "Mango"];
var joinedString = results.join(' and ');
//joinedString = 'Banana and Orange and Apple and Mango'
于 2013-03-13T21:44:16.680 に答える