Javascript Json字符串是';我的jsp页面上没有显示
在我的项目中的一个页面中,我有一个jquery代码,它接收两个json字符串,应该在我的表单中添加一些字段:Javascript Json字符串是';我的jsp页面上没有显示,javascript,jquery,json,Javascript,Jquery,Json,在我的项目中的一个页面中,我有一个jquery代码,它接收两个json字符串,应该在我的表单中添加一些字段: <script> $("document").ready(function(){ var obj_tipo = jQuery.parseJSON( "${lista_tipos}" ); var obj_campo = jQuery.parseJSON( "${lista_campos}" ); var newRow = $('<tr>'
<script>
$("document").ready(function(){
var obj_tipo = jQuery.parseJSON( "${lista_tipos}" );
var obj_campo = jQuery.parseJSON( "${lista_campos}" );
var newRow = $('<tr>');
col_1 = '<td> Tipo: </td>';
col_2 = '<td> <select name="tipo"> </select> </td> </tr>';
for(var nome in obj_tipo)
col_2.append('<option value="'+nome+'">'+nome+'</option>');
newRow.append(col_1);
newRow.append(col_2);
$("table.cadastro").append(newRow);
col_3 = '';
for(var nome in obj_campo)
col_3 += '<tr> <td> '+nome+' : </td> <td> <input type="text" name="'+nome+'" value="'+nome+'" size=20 maxlenght=40> </td> <tr>';
$("table.cadastro").append(col_3);
});
</script>
$(“文档”).ready(函数(){
var obj_tipo=jQuery.parseJSON(${lista_tipos});
var obj_campo=jQuery.parseJSON(${lista_campos});
var newRow=$('');
col_1='Tipo:';
col_2='';
用于(obj_tipo中的变量名称)
列2.附加(“”+nome+“”);
newRow.append(col_1);
newRow.append(col_2);
$(“table.cadastro”).append(newRow);
col_3='';
用于(obj_campo中的变量nome)
col_3+=''+nome+':';
$(“table.cadastro”)。追加(第3栏);
});
但我的页面中没有显示任何内容。我从Chrome中查看开发者工具,浏览器正在读取:
<script>
$("document").ready(function(){
var obj_tipo = jQuery.parseJSON( "{"Tipo":[{"id":3,"nome":"gerente"},{"id":4,"nome":"supervisor"},{"id":5,"nome":"analista"},{"id":6,"nome":"tecnico"},{"id":7,"nome":"secretaria"},{"id":8,"nome":"seguranca"}]}" );
var obj_campo = jQuery.parseJSON( "{"Key":[{"id":1,"nome":"e-mail"},{"id":2,"nome":"cidade"}]}" );
var newRow = $('<tr>');
col_1 = '<td> Tipo: </td>';
col_2 = '<td> <select name="tipo"> </select> </td> </tr>';
for(var nome in obj_tipo)
col_2.append('<option value="'+nome+'">'+nome+'</option>');
newRow.append(col_1);
newRow.append(col_2);
$("table.cadastro").append(newRow);
col_3 = '';
for(var nome in obj_campo)
col_3 += '<tr> <td> '+nome+' : </td> <td> <input type="text" name="'+nome+'" value="'+nome+'" size=20 maxlenght=40> </td> <tr>';
$("table.cadastro").append(col_3);
});
</script>
$(“文档”).ready(函数(){
var obj_tipo=jQuery.parseJSON(“{”tipo:“{”id:3,“nome:“gerente”},{”id:4,“nome:“supervisor”},{”id:5,“nome:“analista”},{”id:6,“nome:“tecnico”},{”id:7,“nome:“secreta”},{”id:8,“nome:“seguranca”});
var obj_campo=jQuery.parseJSON(“{”Key:[{”id:1,“nome:“e-mail”},{”id:2,“nome:“cidade”}]}”);
var newRow=$('');
col_1='Tipo:';
col_2='';
用于(obj_tipo中的变量名称)
列2.附加(“”+nome+“”);
newRow.append(col_1);
newRow.append(col_2);
$(“table.cadastro”).append(newRow);
col_3='';
用于(obj_campo中的变量nome)
col_3+=''+nome+':';
$(“table.cadastro”)。追加(第3栏);
});
有人能告诉我这个代码有什么问题吗
注:本页的完整代码如下:
json字符串从此类的方法“cadastra”发送到页面:
文档
而不是文档
。阅读
. 李>
''
文档
而不是文档
。阅读
. 李>
''
这部分代码存在一些主要问题(除了Satpal回答中的问题外):
这部分代码存在一些主要问题(除了Satpal回答中的问题外):
解释一下为什么他们需要使用单引号而不是双引号来包装JSON字符串可能会很有用,以防这一点不是很明显。谢谢你的回答。我做了您建议的修复,但字段仍然不会显示在我的页面上。也许在我附加html标记的代码部分有一些错误?@KleberMota,请参见Anthony Grist的回答他已经很好地指出了错误,我忽略了这些错误,这可能有助于解释为什么需要使用单引号而不是双引号来包装JSON字符串,以防万一,这不是很明显。谢谢你的回答。我做了您建议的修复,但字段仍然不会显示在我的页面上。也许在我附加html标签的代码部分有一些错误?@KleberMota,参见Anthony Grist的回答,他很好地指出了我遗漏的错误
$(document).ready(function(){
var obj_tipo = jQuery.parseJSON('${lista_tipos}' );
var obj_campo = jQuery.parseJSON( '${lista_campos}' );
......
var newRow = $('<tr>');
col_1 = '<td> Tipo: </td>';
col_2 = '<td> <select name="tipo"> </select> </td> </tr>';
for(var nome in obj_tipo)
col_2.append('<option value="'+nome+'">'+nome+'</option>');
newRow.append(col_1);
newRow.append(col_2);
$("table.cadastro").append(newRow);
var newRow = $('<tr>');
col_1 = '<td> Tipo: </td>';
col_2 = $('<td></td>');
var select = $('<select name="tipo">');
for(var nome in obj_tipo)
select.append('<option value="'+nome+'">'+nome+'</option>');
select.appendTo(col_2);
newRow.append(col_1);
newRow.append(col_2);
$("table.cadastro").append(newRow);