2017-01-17 4 views
0

私はBootstrap Tablesについて質問しましたが、一方、私はブロックされていると感じていたので、私はDatatablesに移動しました。しかし、私の問題は同じです。ネストされた配列を持つデータ型

ネストされたJSON結果を簡単に処理することはできません。たとえば、 "field:author"を選択すると、 "[Object Object]、[Object Object]"というように処理されます。

"author": [ 
     { 
      "family": "Obama", 
      "given": "Barack" 
     }, 
     { 
      "family": "Obama", 
      "given": "Michelle" 
     } 

私が「フィールド:著者[、] .family」と言う、個別に結果を選択することができ、「オバマ、オバマ」のようなリストを返します。しかし、私は "given + family1、given + family2、.."のような出力をしたい。

+1

データ型は簡単に[ネストされたjsonを処理できます](https://editor.datatables.net/examples/advanced/deepObjects.html)。たぶんあなたがあなたのデータテーブルのコードを投稿したなら、あなたを助けることができるかもしれません。あなたの質問は何ですか? – markpsmith

+0

エディタは有料のプラグインではありませんか? – east1999

+0

Gaa申し訳ありませんが、間違ったリンクを貼り付けました! [https://datatables.net/examples/ajax/deep.html](https://datatables.net/examples/ajax/deep.html) – markpsmith

答えて

0

カスタムレンダリングを使用できます。 DataTablesでは、各列にカスタムレンダリングを定義できます。

ここには私が試したsampleがあります。 Authorカラムのカスタムレンダリングを行っています。

$(document).ready(function() { 
var dataSet = [ 
    { "name": "How to DataTables", "author": [{ "firstname": "jack", lastname: "d" }, { "firstname": "dick", lastname: "j" }] }, 
    { "name": "How to Custom Render", "author": [{ "firstname": "bill", lastname: "g" }, { "firstname": "scott", lastname: "g" }] } 
]; 

$('#example').DataTable({ 
    data: dataSet, 
    columns: [ 
     { title:"Book Name", 
      data: "name" }, 
     { 
      title: "Authors", 
      data: "author", 
      render: function(data, type, row) { 
       //return data.length; 
       var txt = ''; 
       data.forEach(function(item) { 
        if (txt.length > 0) { 
         txt += ', ' 
        } 
        txt += item.firstname + ' ' + item.lastname; 
       }); 
       return txt; 
      } 
     } 
    ] 
}); 
}); 
+0

これは機能しますが、JSONファイルで使用する方法がわかりません。私はJSON入力を、私が再生して交換できる変数に変換する必要があります。 – east1999

+0

Datatablesにデータを直接読み込む方法は、このリンクを参照してください。https://datatables.net/examples/data_sources/ –

+0

Datatablesフォーラムで解決済み: 「data」:「author」、 「レンダリング」:関数(データ、型、フル){ return $ .map(data、function(d、i){ return d.given + '' + d.family; }).join( '、
'); } ' – east1999

関連する問題