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

时间:2017-09-22 22:01:03

标签: javascript jquery x-editable

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

我尝试做的就是检索数据并填充一个选择框(特别是x-editable)。

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

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

是的,我可以把50个州放在那里但是我想对我计划实施的其他选择框使用同样的方法。

以下是我目前从我的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'}
    ]

但是我不知道该怎么办。数据Feed的格式{"data让我失望。我过去习得的数据非常像X-Editable正在寻找的。

1 个答案:

答案 0 :(得分:1)

我在这里假设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
});