Javascript 拆分JSON字符串,结果为空
我在发布jQueryAjax请求后得到的数据如下Javascript 拆分JSON字符串,结果为空,javascript,jquery,Javascript,Jquery,我在发布jQueryAjax请求后得到的数据如下 [{"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>
[{"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>
人
SKC
.
.
.
我已经尝试过了,但这会将数据拆分为null
$.each(data, function (index, value) {
$('#bu_group').append($('<option/>', {
value: value,
text : value
}));
});
$。每个(数据、函数(索引、值){
$('#bu_组')。追加($('',{
价值:价值,
文本:值
}));
});
您必须这样做:
$.each(data, function (index, data) {
$('#bu_group').append($('<option/>', {
"value": data.id,
"text": data.name
}));
});
$。每个(数据、函数(索引、数据){
$('#bu_组')。追加($('',{
“值”:data.id,
“text”:data.name
}));
});
或者,另一种方式,就像您希望值和文本都相同一样:
$.each(data, function (index, data) {
$('#bu_group').append($('<option/>', {
"value": data.name,
"text": data.name
}));
});
$。每个(数据、函数(索引、数据){
$('#bu_组')。追加($('',{
“value”:data.name,
“text”:data.name
}));
});
属性值
和值值
冲突。此外,您需要访问值
的内部成员,而不是值
本身
小提琴:试试这个
$.each(data, function (index, val) {
$('#bu_group').append($('<option/>', {
value: val.id,
text : val.name
}));
});
$。每个(数据、函数(索引、val){
$('#bu_组')。追加($('',{
值:val.id,
文本:val.name
}));
});
var yourray=JSON.parse(数据);
log(数组);
$.each(你的数组,函数(索引,你的数组){
$('#builder_group')。追加($('',{
value:yourArray.id,
text:yourArray.name,
}));
});
这解决了我的问题您是将其作为字符串获取,还是只是JavaScript代码?JavaScript对象和JSON不是一回事。@Qantas 94 Heavy我从jQueryAjax响应中得到了这一点。在控制台中,它显示stringOkay,我删除了
var data=
位,以使其更清晰。@user3004356请查看小提琴:
var yourArray = JSON.parse(data);
console.log(yourArray);
$.each(yourArray, function (index, yourArray) {
$('#builder_group').append($('<option/>', {
value: yourArray.id,
text : yourArray.name,
}));
});