我有一个jsp页面试图从后端拉取数据并将其填充到下拉框中,但是我在'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”:“商标2”,“6”:“商标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>
答案 0 :(得分:1)
在将响应文本保存到变量之前解析它。然后将变量传递给$.each
。
var jsonObject = JQuery.parseJSON(responseTM);
$.each(jsonObject , function(key, value) {
$('<option>').val(key).text(value).appendTo($select);
});
答案 1 :(得分:0)
如果您要进行ajax调用以获取json
响应,请务必明确指定dataType
。
dataType: 'json'
我猜您正在解析String
而不是Object
。因为默认情况下dataType为text