将 JSON 数据嵌套到 Datatable 中不起作用

Posted

技术标签:

【中文标题】将 JSON 数据嵌套到 Datatable 中不起作用【英文标题】:Nested JSON data into Datatable not working 【发布时间】:2021-04-14 10:00:16 【问题描述】:

所以我有一个很长的(嵌套的)JSON 数组(我已经缩小了它):

      
  "items" : [ 
    "track" : 
      "album" : 
        "name" : "Pressure Makes Diamonds"
      ,
      "artists" : [ 
        "name" : "Danny Vera"
       ],
      "href" : "https://api.spotify.com/v1/tracks/7rO7Pc5dkC2EIW1OKsCJtQ",
      "name" : "Roller Coaster"
    
  , 
    "track" : 
      "album" : 
        "name" : "Amigo"
      ,
      "artists" : [ 
        "name" : "Chef'Special"
       ],
      "href" : "https://api.spotify.com/v1/tracks/6yvxKrf9KZLTodXFTBmdR1",
      "name" : "Nicotine"
    
  , 
    "track" : 
      "album" : 
        "name" : "Lines (New Version)"
      ,
      "artists" : [ 
        "name" : "Niels Geusebroek"
       ],
      "href" : "https://api.spotify.com/v1/tracks/62En58kZelNGnGvmJUMVC0",
      "name" : "Take Your Time Girl (live at ruud de wild/538)"
    
   ]

我正在尝试使用以下代码在数据表中显示它:

<script>
        $(document).ready(function() 
            $('#table_id').DataTable( 
                processing: true,
                data: !! $response !!, // <= this is where the JSON comes from (Laravel)
                columns: [
                     "track" : "name" ,
                     "track" : "album.name" ,
                     "track" : "artists[0].name" 
                ]
            )
        )
    </script>

有人知道我做错了什么吗? 我查看了数据表 (Datatables) 并关注了它,但它仍然无法正常工作...

【问题讨论】:

Laravel 有 yajrabox.com/docs/laravel-datatables/master/installation 试试这个 "track" 不是列的有效 DataTables 选项。我怀疑您的意思是在您的columns 部分中使用"data" - 可能像这样:"data" : "track.album.name"。请参阅示例页面here。但要使其正常工作,您还需要主 data 选项 data: !! $response !! 指向 "items",因为这是将迭代的数组 DataTables 的名称。 【参考方案1】:

知道了:

<script>
        $(document).ready(function() 
            $('#table_id').DataTable( 
                processing: true,
                data: !! $response !!["items"],
                columns: [
                     "data" : "track.name" ,
                     "data" : "track.album.name" ,
                     "data" : "track.artists[0].name" 
                ]
            )
        )
    </script>

谢谢大家!!

【讨论】:

以上是关于将 JSON 数据嵌套到 Datatable 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript + Jquery DataTable - 将数据传递到 defaultContent json 列

C# - 展平嵌套的 Json

从嵌套 json 排序的 Angular 4 数据表

h:commandButton 在 h:dataTable 中不起作用

求问 C#如何将json字符串转为datatable 求详细解答

ashx将datatable返回json数据