Отображение содержимого результата JSON и неопределенного значения в сетке - PullRequest
0 голосов
/ 07 февраля 2012

Итак, я использую 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();
});
});

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Похоже, проблема в коде, который вы пропускаете:

grid += '<tr><td>'+ ........ +'</td></tr>';

Если результат json находится в первом формате, то вы сможете получить доступ к fields объект с использованием CAMPO.fields.

Редактировать:

Пример:

grid += '<tr><td>'+ CAMPO.fields.FQtdPessoas +'</td><td>'+ CAMPO.fields.FDataFechamento +'</td><td>'+ [...]
0 голосов
/ 07 февраля 2012

В вашем коде CAMPO относится к объекту, который выглядит следующим образом:

{
    "type": "VOMesas.TMesas",
    "id": 1,
    "fields": {
        "FUsers": 1,
        "FEnclosing": 0,
        "FClientName": "",
        "FCode": 100,
        "FStatus": 1,
        "FTotalValue": 128.25
    }
}

Чтобы получить доступ к его полям, используйте свойство fields (или установите CAMPO в item[i].fields).

0 голосов
/ 07 февраля 2012

Для использования свойств в поле используйте:

item.result[0][0].fields.<<Your proprerties here>>

Для Id и Тип do:

item.result[0][0].id
item.result[0][0].type

Edit:

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>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...