Если это SQL-Server 2016+, вы можете использовать встроенную поддержку JSON следующим образом:
DECLARE @YourJson NVARCHAR(MAX)=
N'{
"content": {
"columns": [
{
"name": "col1",
"dataType": "float"
},
{
"name": "col2",
"dataType": "float"
}
],
"rows": [
[
0,
2
],
[
4,
5
]
]
}
}';
- объявить или создать целевую таблицу
DECLARE @predefinedTable TABLE(col1 FLOAT, col2 FLOAT);
- чтениезначения из JSON
INSERT INTO @predefinedTable(col1,col2)
SELECT TheJsonsContent.col1
,TheJsonsContent.col2
FROM OPENJSON(@YourJson,'$.content.rows')
WITH(col1 FLOAT '$[0]'
,col2 FLOAT '$[1]') TheJsonsContent;
- Проверьте результат
SELECT * FROM @predefinedTable;
Идея вкратце:
Мы используем OPENJSON
, чтобы получить массив в $.content.rows
. Затем мы используем WITH
-класс, чтобы получить значения по их положению (начиная с нуля).
Подсказка: если вы используете другую СУБД или более низкую версию, это будет сложно ... В зависимости отсложность JSON, вам нужно много разбирать ... В этом случае я бы предложил использовать другой инструмент.