在网格中显示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 += ''; } 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 + '
'; $("#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.<> 

对于IdType,请执行以下操作:

 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 )。