【问题标题】:populate select dropdown with keys from JSON array使用 JSON 数组中的键填充选择下拉列表
【发布时间】:2015-06-28 17:13:34
【问题描述】:

我有以下可用的 json 数组:

{
    "Particulier": {
        "Weekend": {
            "2015": {
                "04": [
                    {
                        "startDate": "24-04-2015",
                        "endDate": "27-04-2015",
                        "price": 1111
                    },
                    {
                        "startDate": "15-04-2015",
                        "endDate": "22-04-2015",
                        "price": 9999
                    },
                    {
                        "startDate": "17-04-2015",
                        "endDate": "24-04-2015",
                        "price": 0
                    }
                ],
                "05": [
                    {
                        "startDate": "01-05-2015",
                        "endDate": "04-05-2015",
                        "price": 2222
                    }
                ]
            },
            "2016": {
                "05": [
                    {
                        "startDate": "08-05-2016",
                        "endDate": "15-05-2016",
                        "price": 5555
                    },
                    {
                        "startDate": "15-05-2016",
                        "endDate": "22-05-2016",
                        "price": 6666
                    },
                    {
                        "startDate": "13-05-2016",
                        "endDate": "20-05-2016",
                        "price": 11111
                    }
                ],
                "04": [
                    {
                        "startDate": "24-04-2016",
                        "endDate": "27-04-2016",
                        "price": 1111
                    },
                    {
                        "startDate": "15-04-2016",
                        "endDate": "22-04-2016",
                        "price": 9999
                    },
                    {
                        "startDate": "17-04-2016",
                        "endDate": "24-04-2016",
                        "price": 0
                    }
                ]
            }
        },
        "Midweek": {
            "2015": {
                "04": [
                    {
                        "startDate": "20-04-2015",
                        "endDate": "24-04-2015",
                        "price": 3333
                    },
                    {
                        "startDate": "27-04-2015",
                        "endDate": "01-05-2015",
                        "price": 4444
                    }
                ]
            }
        }
    },
    "Clienten en patienten": {
        "Weekend": {
            "2016": {
                "01": [
                    {
                        "startDate": "08-01-2016",
                        "endDate": "11-01-2016",
                        "price": 7777
                    },
                    {
                        "startDate": "09-01-2016",
                        "endDate": "16-01-2016",
                        "price": 8888
                    }
                ]
            }
        }
    }
}

是否可以检索同一级别的所有键,以便 jQuery 使用它们来填充选择下拉列表。

在同一级别上,我的意思是:'Particulier' & 'Clienten en patienten' 和 'Weekend' & 'Midweek' & 'Week' 等等..

如果需要任何信息,请询问,这是新手。 提前致谢!

【问题讨论】:

  • 您认为此数据中的“关键”是什么?
  • 是的。你只需要迭代和收集。你知道如何迭代对象的属性吗?
  • 你能贴出完整的json吗,因为你贴的不是有效的json
  • @user1477388 我提到的那些:'Particulier' & 'Clienten en patienten' 和 'Weekend' & 'Midweek' & 'Week' 等等..
  • @FelixKling 不是真的..

标签: javascript jquery json multidimensional-array


【解决方案1】:

这就是我认为你正在尝试做的事情:

http://jsfiddle.net/5wvLapox/

$.each( d, function( key1, value1 ) {
    console.log(value1);
    $.each( value1, function( key2, value2 ) {
       $('#put').append( $('<div></div>').html(key2) );
    });
});

输出:

Weekend 
Midweek

编辑:

根据您的评论,您似乎只想要第一级:

http://jsfiddle.net/5wvLapox/2/

$.each( d, function( key1, value1 ) {
    $('#put').append( $('<div></div>').html(key1) );
});

输出:

Particulier
Clienten en patienten

【讨论】:

  • 我想要所有级别的,你的回答真的很有帮助!谢谢!
  • 如果你想在所有级别上都使用它,那么你应该使用递归。
【解决方案2】:

HTML 代码:&lt;select id="DLState"&gt;

JS部分:

    var listItems= "";
$.each( datajson, function( key1, value1 ) {

    $.each( value1, function( key2, value2 ) {


        listItems+= "<option value='" + key2 + "'>" + key2 + "</option>";

    });

});
$("#DLState").html(listItems);

试试这个演示 Demo

【讨论】:

    【解决方案3】:

    Object.keys(jsonObject) 也将帮助您获取密钥并列出。

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多