2012-02-07 23 views
0

そこで、JSONを読み込んでグリッド内に配置するためにJQueryを使用しています。問題は次のとおりです。グリッドに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}]]} 

それは読み込みJSONがあるときにグリッドが表示されません。

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

JSON結果が最初にある場合は、次の問題は、あなたは省いているコードにあるよう

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

あなたは同じ質問を2度お願いしましたが、あなたは答えませんでした。 http://stackoverflow.com/questions/9179397/how-to-read-the-fields-content-inside-a-json-result-using-jquery 、あなたの答えをマークしてください – Anwar

答えて

1

ルックス:ここ

は、私が使用している関数でありますフォーマットの場合、CAMPO.fieldsを使用して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 +'​​「+ CAMPO .FNumeroVenda + '​​' + CAMPO.FGarcon + ''; これはフィールドの実コンテンツです。 – Tutch

+0

ありがとう!それは魅力のように働いた。私はそれをやろうとしましたが、フィールド{}のフィールドの1つを忘れてしまったxD – Tutch

0

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

同上タイプのために行う:

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

*デバッガー*キーの使用をお勧めします。これは、階層内のオブジェクト属性に関する詳細情報を発見または探索する能力を与えます。 – Anwar

0

CAMPOは次のようになりますオブジェクトを参照:、そのフィールドにアクセスfieldsプロパティを使用する(またはCAMPOを設定するには

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

item[i].fields)。

関連する問題