拆分JSON字符串导致null

时间:2014-07-16 10:28:09

标签: javascript jquery

我发布jQuery Ajax请求后得到的数据的格式为

[{"name":"Man","id":"1"},{"name":"SKC","id":"2"},{"name":"fsdfds","id":"3"},{"name":"ETA","id":"4"},{"name":"Star","id":"5"},{"name":"SCity ","id":"6"},{"name":"TESTGB","id":"11"}]

所以我需要以这样的方式拆分它:我得到一个下拉列表:

<select>
<option value="1">Man</option>
<option value="2">SKC</option>
.
.
.
</select>

我试过这个,但这会将数据拆分为空。

$.each(data, function (index, value) {                  
    $('#bu_group').append($('<option/>', { 
        value: value,
        text : value 
    }));
}); 

3 个答案:

答案 0 :(得分:1)

试试这个

$.each(data, function (index, val) {                  
                        $('#bu_group').append($('<option/>', { 
                            value: val.id,
                            text : val.name 
                        }));
}); 

答案 1 :(得分:0)

你必须这样:

$.each(data, function (index, data) {                  
    $('#bu_group').append($('<option/>', { 
        "value": data.id,
        "text": data.name
    }));
});

或者,另一种方式就是你希望值和文本都相同:

$.each(data, function (index, data) {                  
    $('#bu_group').append($('<option/>', { 
        "value": data.name,
        "text": data.name
    }));
});

属性value和值value存在冲突。此外,您需要访问value的内部成员,而不是value本身。

小提琴:http://jsfiddle.net/praveenscience/zLELr/

答案 2 :(得分:0)

var yourArray = JSON.parse(data);
                   console.log(yourArray);                                           
                    $.each(yourArray, function (index, yourArray) {                 
                        $('#builder_group').append($('<option/>', { 
                            value: yourArray.id,
                            text : yourArray.name, 
                        }));
});   

这解决了我的问题