2012-02-07 3 views
0

Итак, я использую JQuery для чтения JSON и помещаю его в сетку. Проблема заключается в следующем: сетка не будет отображаться, когда JSON является:Отображение содержимого результата JSON и «undefined» в сетке

{"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

Часть, которую вы опустили, где у вас есть '........', почти наверняка очень актуальна. :-) –

+0

Код: сетка + = ' '+ 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 + ''; который является полем реального контента. – Tutch

+0

Вы задали тот же вопрос дважды, и вы не ответили на него http://stackoverflow.com/questions/9179397/how-to-read-the-fields-content-inside-a-json-result-using-jquery , пожалуйста, отметьте вам ответы – Anwar

ответ

1

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

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

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

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

Пример:

grid += '<tr><td>'+ CAMPO.fields.FQtdPessoas +'</td><td>'+ CAMPO.fields.FDataFechamento +'</td><td>'+ [...] 
+0

код: сетка + = ' '+ CAMPO.FQtdPessoas +' '+ CAMPO.FDataFechamento +' '+ CAMPO.FTempoPermanencia +'' + CAMPO. FNomeCliente +» '+ CAMPO.FValorAcrescimo +' '+ CAMPO.FValorDesconto +' '+ CAMPO.FValorServico +' '+ CAMPO.FDataAbertura +' + CAMPO.FNumero + '+ CAMPO.FStatus +' + CAMPO.FValorTotal + '+ CAMPO.FTerminalAberto + «+ КАМПО .FNumeroVenda + '' + CAMPO.FGarcon + ''; который является полем реального содержания. – Tutch

+0

Большое спасибо :)! Оно работало завораживающе. Я попытался это сделать, но забыл одно из полей {} полей xD – Tutch

0

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

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

Для Id и Тип сделать:

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>'; 
} 
+0

. Я рекомендую использовать ключ * debugger *, потому что это даст вам возможность обнаруживать или исследовать дополнительную информацию об атрибутах объектов в иерархии. – Anwar

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

Смежные вопросы