循环json数组时出现问题

Lel*_*eta 1 javascript sql jquery json

我从json格式的ajax调用中检索了一些选项.我设置的代码在选择中显示新选项(替换现有选项)如下:

success: function (data){
    var $select = $('#dettaglio');
    $select.html('');
    $.each(data, function(key, val){
        $select.append('<option id="' + val.id + '">' + val.text +'</option>');
    })
}
Run Code Online (Sandbox Code Playgroud)

虽然json是这样的:

[
   {"id":"1","text":"J-Invest Spa"},
   {"id":"2","text":"J-A Holding S.r.l."},
   {"id":"3","text":"J-Invest Advisory & Servicing S.r.l."},
   {"id":"4","text":"J-Invest Immobiliare e Consulenza S.r.l."}
]
Run Code Online (Sandbox Code Playgroud)

运行此代码会导致错误,这不容易理解:

TypeError:操作数e中的'in'无效

... === n ||"function"!== n &&(0 === t ||"number"== typeof t && t> 0 && t-1 in e)} r = b(o); var _ = { } ...

jQuery抛出了一个错误,但这对于查看我的代码错误没有帮助.任何提示?

Pra*_*man 7

是的,我从mysql获取一个数组并用它编码json_encode.从服务器接收的数据将始终为string类型.您需要解析它以转换为JSON格式.你能试试吗?

success: function(data) {
  data = JSON.parse(data);
Run Code Online (Sandbox Code Playgroud)

或者万一,如果您使用的是旧的IE,您还可以尝试:

success: function(data) {
  data = $.parseJSON(data);
Run Code Online (Sandbox Code Playgroud)