#jquery #datatables
#jquery #таблицы данных
Вопрос:
У меня есть этот json из стороннего API, который не находится под моим контролем-
https://pastebin.com/WNZZWXV7
(содержит урезанный отдельный набор)
2 значения, которые я хочу в строке, выглядят следующим образом-
Столбец 1 = response.listResults[0].listInstrument.instrumentBasic.symbol («SAREGAMA» в примере)
Столбец 2 = response.listResults[0].listColumns[0].Значение данных.Двойное значение (823 в примере)
Это мой текущий код-
<table id="example" class="display" style="width:100%"></table>
<script>
$(document).ready(function() {
$('#example').DataTable( {
"ajax": '..private url',
"columns": [
{ "title": "Stock", "data": "response.listResults.listInstrument.flagged", "searchable": true, "visible": true },
{ "title": "Price", "data": "response.listResults.listColumns[0].dataValue.doubleValue" }
]
} );
} );
</script>
Я просмотрел примеры здесь — https://datatables.net/examples/ajax / но не в состоянии разобраться в этом. Любая помощь или указания приветствуются.
Ответ №1:
Это несколько неудобная структура JSON, потому что она содержит два отдельных массива, которые вы хотите использовать в качестве точек итерации для каждого столбца DataTables, а во втором столбце вы хотите использовать только первый вложенный объект…
Вот один из подходов:
Измените свой ajax
параметр, чтобы он мог использовать dataSrc
параметр:
"ajax": {
"url": "..private url",
"dataSrc": "response.listResults"
}
В этом случае dataSrc
указывает на местоположение в вашем ответе JSON, где начинается первый массив JSON: listResults
массив.
Теперь вы можете использовать это в качестве отправной точки для каждого из ваших columns
определений:
"columns": [
{
"title": "Stock",
"data": "listInstrument.instrumentBasic.symbol",
"searchable": true,
"visible": true
},
{
"title": "Price",
"data": "listColumns.0.dataValue.doubleValue"
}
]
Определение данных первого столбца будет повторяться для каждого listInstrument
объекта. Но поскольку существует только один такой объект, он будет захватывать только одно связанное значение для имени символа: «SAREGAMA».
Второй столбец используется listColumns.0
для обеспечения просмотра только первого (из многих) listColumns
объектов. Это дает вам единственную цену, которую вы хотите: 823. Очевидно, предполагается, что вы в порядке с жестким кодированием этого нуля для первого объекта.
Конечный результат:
Комментарии:
1. Спасибо, это сработало для моего json. Я принял ответ.