访问 JSON 数据结果中的键值对

Accessing Key Value Pair in JSON data results

我不需要访问 JSON 数据,所以我有点困惑。我已经使用 JSON 格式化程序验证了数据,它是有效的,所以我知道这很好。

我想要做的就是检索数据并填充一个 select 框(特别是 x-editable)。

在那个例子中,他们提供:

$('#id').editable({
    source: [
        {value: 1, text: 'Male'},
        {value: 2, text: 'Female'}
    ]
});

是的,我可以将 50 个州放入其中,但我想对我计划实施的其他 select 个框使用相同的方法。

这是我目前从 JSON 通话中返回的数据馈送:

{
"data": [{
    "stateID": 1,
    "stateAbbr": "AL",
    "state": "Alabama"
}, {
    "stateID": 2,
    "stateAbbr": "AK",
    "state": "Alaska"
}, {
    "stateID": 3,
    "stateAbbr": "AZ",
    "state": "Arizona"
}, {
    "stateID": 51,
    "stateAbbr": "WY",
    "state": "Wyoming"
}]}    

我正在使用的函数片段是:

$.getJSON("test.html?format=json",function(data){
    statesArr = statesArr.concat(data);
});

理想情况下,我想让 statesArr 看起来像这样:

source: [
        {value: 1, text: 'Alabama'},
        {value: 2, text: 'Alaska'},
        ...
        {value:50, text: 'Wyoming'}
    ]

但我不知道从这里可以做什么。数据提要的格式 {"data 让我失望。我习惯于像 X-Editable 正在寻找的那样获取数据。

我在这里假设 resp 是响应。并且 resp 有 data 属性。如果我误解了你,请告诉我。

var statesArr;
$.getJSON('test.html?format=json', function(resp){
    statesArr = resp.data.map(function(state){
        return {
            value: state.stateID,
            text: state.state
        }
    });
});

/* somewhere else later; make sure that statesArr is set */
$('#id').editable({
    source: statesArr
});