在网格中显示JSON结果和’undefined’的内容
所以,我正在使用JQuery读取JSON并将其放入网格中。 问题是:当JSON为:时,网格不会显示:
{"result":[[{"type":"VOMesas.TMesas","id":1,"fields":{ "FUsers":1,"FEnclosing":0,"FClientName":"","FCode":100,"FStatus":1,"FTotalValue":128.25}}]]}
但如果JSON就是这样,没有字段:{…}:
{"result":[[{"type":"VOMesas.TMesas","id":1,"FUsers":1,"FEnclosing":0,"FClientName":"","FCode":100,"FStatus":1,"FTotalValue":128.25}]]}
它读。
这是我正在使用的function:
function getContent(order) { $.getJSON("query.json", function(data) { $.each(data.result, function(i, item) { var grid = ''; var i=0; var CAMPO; for (i=0; i < item.length; i++){ CAMPO = item[i]; grid += ''+ CAMPO.FQtdPessoas + ' '+ CAMPO.FDataFechamento + ' '+ CAMPO.FTempoPermanencia + ' '+ CAMPO.FNomeCliente + ' '+ CAMPO.FValorAcrescimo + ' '+ CAMPO.FValorDesconto + ' '+ CAMPO.FValorServico + ' '+ CAMPO.FDataAbertura + ' '+ CAMPO.FNumero + ' '+ CAMPO.FStatus + ' '+ CAMPO.FValorTotal + ' '+ CAMPO.FTerminalAberto + ' '+ CAMPO.FNumeroVenda + ' '+ CAMPO.FGarcon + ' '; } grid += '
'; $("#dvContent").html(grid); $("#dvContent").find("a").click(function(e){ var link = $(this); getContent(link.html()); }); }); }); } $(document).ready(function(){ $(function() { getContent(); }); });
看起来问题在于您省略的代码:
grid += '
';
如果json结果是第一种格式,那么您应该能够使用CAMPO.fields
访问fields
对象。
编辑:
例:
grid += ''+ CAMPO.fields.FQtdPessoas +' '+ CAMPO.fields.FDataFechamento +' '+ [...]
对于在现场使用下使用属性:
item.result[0][0].fields.<>
对于Id和Type,请执行以下操作:
item.result[0][0].id item.result[0][0].type
编辑:
for (i = 0; i < item.result.length; i++) { CAMPO = item.result[i][i].fields; grid += ''+ CAMPO.FQtdPessoas + ' '+ CAMPO.FDataFechamento +' '; }
在您的代码中, CAMPO
引用了如下所示的对象:
{ "type": "VOMesas.TMesas", "id": 1, "fields": { "FUsers": 1, "FEnclosing": 0, "FClientName": "", "FCode": 100, "FStatus": 1, "FTotalValue": 128.25 } }
要访问其字段,请使用fields
属性(或将CAMPO
设置为item[i].fields
)。