このように見えるはずのオブジェクトの配列があります...
[{"Name":"blah","Description":"blah"},{"Name":"blah2","Description":"blah2"}]
Javascript / jQueryを使用して、キーと値のペアを取得するにはどうすればよいですか?私は多くの異なる方法を試しましたが、役に立ちませんでした。長さを取得しようとすると、常に文字数が返され、オブジェクトの実際の数ではなく、各文字を繰り返し処理しますか?これを実行すると、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]が各キャラクターによって綴られているというアラートが返されます。
function DisplayItems(data) {
$.each(data, function () {
$.each(this, function (key, value) {
alert(value);
});
});
}
これを見ると、期待しているオブジェクトの配列ではありませんか?文字列を実際に返して、実際に文字列に何が含まれているかを確認し、そこから移動できるようにするにはどうすればよいですか?
**編集:
これは注文を取得するための私の関数です(がらくたを切り取ってアラートを表示します)... jQuery.Ajaxを呼び出し、返されたデータをdisplayOrders(data)に渡します。注文には、アイテムのリストを含むアイテムの複合プロパティがあります。
function displayOrders(data) {
$('#gdvOrders tbody').empty();
for (var key in data.d) {
alert(data.d[key].Items);
}
これは、アラート関数に表示されるdisplayItemsに渡したものです。注文を1つのテーブルに表示し(アイテムを含むいくつかの列を非表示にします)、注文テーブルの行を選択したときに、別のテーブルの各注文のアイテムを表示したいと思います。上記の関数で私は書くことができます...
data.d[key].OrderId
通常どおり表示されます。各アイテムのプロパティを表示するにはどうすればよいですか?
jQuery.Ajax関数はcontent-typeに設定されます:'application / json; charset =utf-8'そしてこれは私が注文を受け取るところです...
[WebMethod]
public static List<Order> GetOrdersByDept(Department department, Filter filter, DateTime? dateFrom = null, DateTime? dateTo = null)
{
return OrderLists.GetOrdersByDepartment((Department)department, (Filter)filter, dateFrom, dateTo);
}