亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

讀取 json 文件數組中的數組

讀取 json 文件數組中的數組

慕虎7371278 2022-12-09 19:16:48
我正在構建一個將數據從 JSON 文件輸出到表中的站點,但是我在獲取要輸出的內容時遇到了問題。這個 JSON 文件是從另一個顯示文檔的站點生成的,而我的站點只是創建一個表格以便于搜索這些文檔。2 個文檔的示例 JSON:    [{        "title": "SampleTitleA",        "lang": "en-US",        "lastEdition": "2020-07-28",        "version": "1.0",        "metadata": [        {            "key": "sampleKeyA1",            "label": "sampleLabelA1",            "values": ["sampleValueA1"]        },        {            "key": "sampleKeyA2",            "label": "sampleLabelA2",            "values": ["sampleValueA2"]        }]    },    {        "title": "SampleTitleB",        "lang": "en-US",        "lastEdition": "2020-07-28",        "version": "1.0",        "metadata": [        {            "key": "sampleKeyB1",            "label": "sampleLabelB1",            "values": ["sampleValueB1"]        },        {            "key": "sampleKeyB2",            "label": "sampleLabelB2",            "values": ["sampleValueB2"]        }]    }]我為此使用 DataTables ( https://datatables.net/examples/ajax/deep.html ) 并嘗試按照它描述的去做。它并沒有真正涵蓋讀取數組中的數組。創建了一個表,但沒有填充,并且在控制臺中沒有顯示任何錯誤。有沒有人為此目的使用數據表的經驗?
查看完整描述

2 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

檢查這是否可以幫助您。


var data = {

    "title": "SampleTitle",

    "lang": "en-US",

    "lastEdition": "2020-07-28",

    "version": "1.0",

    "metadata": [

    {

        "key": "sampleKey1",

        "label": "sampleLabel1",

        "values": ["sampleValue1"]

    },

    {

        "key": "sampleKey2",

        "label": "sampleLabel2",

        "values": ["sampleValue2"]

    }]

}


var result = { data: data.metadata[1].values[0], "defaultContent": "-" }

console.log(result);


查看完整回答
反對 回復 2022-12-09
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

您的 JSON 數據結構是一個數組——所有內容都包含在一個中[...]——因此 DataTables 可以遍歷該數組以生成其表行。


data這是一個示例,其中除了列定義(和列標題)外,所有內容都從您的代碼中刪除:


<script type="text/javascript">


 $(document).ready(function() {


    $('#example').DataTable({

        ajax: {

          // my test URL:

          url: 'http://localhost:7000/sample2',

          dataSrc: ''

        },

        "columns": [

          { title: 'Title', data: 'title' },

          { title: 'Language', data: 'lang' },

          { title: 'Key', data: 'metadata[0].key' },

          { title: 'Label', data: 'metadata[0].label' },

          { title: 'First Value', data: 'metadata[0].values[0]' }

        ]

    } );


  } );


</script>

這會生成一個如下所示的表:

http://img1.sycdn.imooc.com//6393194900014e0c06540148.jpg

這是如何運作的?

默認情況下,DataTables 期望 JSON 結構為以下之一:

  1. 包含其他對象數組的對象:

{ "data": [ {...},{...},... ] }
  1. 包含數組數組的對象:

{ "data": [ [...],[...],... ] }

在這兩種情況下,數組都有一個名稱(在本例中為data)。

在您的情況下,如前所述,您的數據只是一個普通的對象數組:

[ {...}, {...},... ]

因為數組沒有名稱,所以我們需要dataSrc: ''在 DataTable 定義中使用它來表示缺少名稱。

之后,您可以引用需要顯示的值,例如data: 'title'.

對于該metadata部分,它本身就是一個引用對象數組的標簽:

"metadata": [ {...} ]

但是,在這種情況下,數組只包含一個對象。我們可以使用[0]- 引用元數據數組中的第一個對象,然后我們可以訪問該對象中的值 - 例如,通過使用:data: 'metadata[0].label'。


查看完整回答
反對 回復 2022-12-09
  • 2 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號