所以,我正在使用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 getContent(order) {
$.getJSON("query.json", function(data) {
$.each(data.result, function(i, item) {
var grid = '<table border="1">';
var i=0;
var CAMPO;
for (i=0; i < item.length; i++){
CAMPO = item[i];
grid += '<tr><td>'+ CAMPO.FQtdPessoas +
'</td><td>'+ CAMPO.FDataFechamento +
'</td><td>'+ CAMPO.FTempoPermanencia +
'</td><td>'+ CAMPO.FNomeCliente +
'</td><td>'+ CAMPO.FValorAcrescimo +
'</td><td>'+ CAMPO.FValorDesconto +
'</td><td>'+ CAMPO.FValorServico +
'</td><td>'+ CAMPO.FDataAbertura +
'</td><td>'+ CAMPO.FNumero +
'</td><td>'+ CAMPO.FStatus +
'</td><td>'+ CAMPO.FValorTotal +
'</td><td>'+ CAMPO.FTerminalAberto +
'</td><td>'+ CAMPO.FNumeroVenda +
'</td><td>'+ CAMPO.FGarcon +
'</td></tr>';
}
grid += '</table>';
$("#dvContent").html(grid);
$("#dvContent").find("a").click(function(e){
var link = $(this);
getContent(link.html());
});
});
});
}
$(document).ready(function(){
$(function() {
getContent();
});
});
答案 0 :(得分:1)
看起来问题出现在您省略的代码中:
grid += '<tr><td>'+ ........ +'</td></tr>';
如果json结果采用第一种格式,那么您应该能够使用fields
访问CAMPO.fields
对象。
修改强>
示例:
grid += '<tr><td>'+ CAMPO.fields.FQtdPessoas +'</td><td>'+ CAMPO.fields.FDataFechamento +'</td><td>'+ [...]
答案 1 :(得分:0)
要使用字段下的属性,请使用:
item.result[0][0].fields.<<Your proprerties here>>
对于 ID 和类型执行:
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 += '<tr><td>'+ CAMPO.FQtdPessoas +
'</td><td>'+ CAMPO.FDataFechamento +'</td></tr>';
}
答案 2 :(得分:0)
在您的代码中,CAMPO
引用了如下所示的对象:
{
"type": "VOMesas.TMesas",
"id": 1,
"fields": {
"FUsers": 1,
"FEnclosing": 0,
"FClientName": "",
"FCode": 100,
"FStatus": 1,
"FTotalValue": 128.25
}
}
要访问其字段,请使用fields
属性(或将CAMPO
设置为item[i].fields
)。