JSON数组迭代

时间:2017-06-15 22:08:05

标签: arrays json iteration

这是我从我的弹簧控制器创建的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输出?请帮忙。

2 个答案:

答案 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;}

不确定这是否是理想的逻辑。