javascript - 无效 'in' 操作数 obj JQUERY - 尝试从 JSON 获取数据时出现类型错误

标签 javascript jquery arrays json jsp

我有一个 jsp 页面,它尝试从后端提取数据并将其填充到下拉框中,但是我不断收到“invalid 'in' operand obj”错误。

我的代码是

$.get('../Paid_deep_dive',{type:"bodyload",s_date:$start_date,e_date:$end_date},function(responseTM) { 

                var $select = $('#tm'); 
                $select.find('option').remove();

                $.each(responseTM, function(key, value) {  

                $('<option>').val(key).text(value).appendTo($select); 

                });


});

我的servlet代码是这样的

  if(type.equals("bodyload"))
{
    try
    {

      prepStmt = con.prepareStatement(dbquery.get_trademark);
      rs=prepStmt.executeQuery();
      while(rs.next())
        {
        json.put(rs.getString(1),rs.getString(2));
        System.out.println(rs.getString(1));
        System.out.println(rs.getString(2));
        }


    String responsetojsp=json.toString(); 
    System.out.println(responsetojsp);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(responsetojsp);
    }
    catch(Exception e)
    {
          logger.error("Error : " + e);
    }
}

当我输出 JSON 时,输出是这样的

{"11":"Trademark 2","6":"Trademark 1"}

我的jsp代码如下

<div id="filter-panel" class="collapse filter-panel">
                <div class="panel panel-default">
                <div class="panel-body">
                    <div class="form-group">
                        <b><font color="#545454" size="2px">START DATE</font></b>
                        <b><font color="#545454" size="2px">END DATE</font></b>
                        <input type="text" id="datepicker1" onchange="loadpage()">-
                        <input type="text" id="datepicker2" onchange="loadpage()">       
                        <label class="filter-col" style="margin-right:0;" for="pref-orderby">Trademark</label>
                        <select id="tm">
                            <option value="trademarks">Trademark 1</option>
                        </select>
                        <label class="filter-col" style="margin-right:0;" for="pref-orderby">Brand</label>
                        <select id="br" class="form-control">
                            <option value="brands">Brand 1</option>
                        </select>
                        <label class="filter-col" style="margin-right:0;" for="pref-orderby">Campaign</label>
                        <select id="camp" class="form-control">
                            <option values="camps">Campaign 1</option>
                        </select>
                        <button type="submit" class="btn btn-default filter-col">
                            <span class="glyphicon glyphicon-record"></span> Submit
                        </button>  
                    </div> <!-- form group [order by] -->
                </div>

最佳答案

解析响应文本,然后将其保存到变量中。然后将变量传递给 $.each

 var jsonObject = JQuery.parseJSON(responseTM);
$.each(jsonObject , function(key, value) {  

$('<option>').val(key).text(value).appendTo($select); 

});

关于javascript - 无效 'in' 操作数 obj JQUERY - 尝试从 JSON 获取数据时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28293200/

相关文章:

python - 如何使用 reshape 将 N 长度向量 reshape 为 numpy 中的 3x(N/3) 矩阵

javascript - 如何改进和缩短这段代码?

Javascript:数字的原型(prototype)

jquery - jQuery 日期选择器的最大日期

javascript - 当我从另一个方法调用方法时,React-native Bridge 为 Nil

jquery UI slider 不显示(附有 css)

javascript - 如何从 HTML View 调用 Controller 操作?

javascript过滤对象数组

javascript - 更改标题标签(选项卡)背景颜色

javascript - 设置不允许更改的输入值