javascript - 循环 json 数组时出现问题

标签 javascript jquery sql 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>');
    })
}

而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."}
]

运行这段代码会导致一个不容易理解的错误:

TypeError: invalid 'in' operand e

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

jQuery 抛出错误,但这无助于查看我的代码哪里出错了。有什么提示吗?

最佳答案

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

success: function(data) {
  data = JSON.parse(data);

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

success: function(data) {
  data = $.parseJSON(data);

关于javascript - 循环 json 数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114032/

相关文章:

javascript - 未定义 onclick 事件的函数 -HTML5 canvas

javascript - Jquery 日期选择器中的验证

java - 在 Javascript 中,valuesLength = (values.length, undefined); 的作用是什么? - 做?

jquery - Bootstrap 4 - 透明粘性导航栏

javascript - 使用 filedownload jquery 插件处理 FilePathResult 返回值

php - 如果记录不在数据库中则重定向用户

sql - 是否可以在 MySQL 5.x 的存储过程中传递整个 WHERE 条件?

java - 我可以使用 Apache Commons DBUtils 将记录插入到 SQL 表中,将 bean 作为值传递吗

javascript - 网页包没有工作

javascript - 将带分页的 PHP 表导出为 EXCEL、PDF、PRINTABLE