这是我从我的弹簧控制器创建的json输出。
[{"id":"1","name":"albert"},{"id":"2","name":"john"},{"id":"3","name":"mac-millon"},{"id":"4","name":"stenberg"},{"id":"5","name":"almaria"}]
在我的jsp文件中,我正在迭代json数组,如下所示
success: function(data){
var content= JSON.parse(data);
$.each(content, function(i, data) {
$('#selectBox').append($('<option>').text(data.name).attr('value',data.id ));
});
但它始终只显示我的选择框中的最后一个值
id="5" value="almaria"
我的迭代有什么问题吗?或者我应该以不同的格式创建json输出?请帮忙。
答案 0 :(得分:1)
仅供参考,如果在回复中正确设置了标题,则无需致电JSON.parse
。 (Content-Type:application / json)。
尽管ID重复,但您的代码似乎在此示例中正常工作。
看到单击选择框时显示所有5个选项。
还有multiple
HTML属性可以执行您想要的操作。
var content = [{"id":"2","name":"albert"},{"id":"2","name":"john"},{"id":"3","name":"mac-millon"},{"id":"4","name":"stenberg"},{"id":"5","name":"almaria"}];
//var content= JSON.parse(data);
$(document).ready(function() {
$.each(content, function(i, data) {
$('#selectBox, #selectBoxMulti').append($('<option>').text(data.name).attr('value',data.id ));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="selectBox">
</select>
<select id="selectBoxMulti" multiple>
</select>
答案 1 :(得分:0)
我看到的一件事是你的JSON有2个id:2 {&#34; ID&#34;:&#34; 2&#34;&#34;名称&#34;:&#34;阿尔伯特&#34;},{&#34; ID&#34;:&# 34; 2&#34;&#34;名称&#34;:&#34;约翰&#34;}
不确定这是否是理想的逻辑。