我想知道如何将这个由两个浮点数数组组成的JSON 对象放入 SQL 数据库表中:
{
"Latitudes": [
53.665084,
53.665084,
53.665184,
53.665284
],
"Longitudes":[
17.342853,
17.342953,
17.343053,
17.343153
]
}
表有 3 列:CoordID、纬度、经度(CoordID 是自动递增的)。我想将每对这些表( [0],[0] / [1][1] 等)作为表中的一行。所以对于这个对象,它将是 4 行。
这是无法按我预期工作的代码-它只是将空值放在“经度”和“纬度”列的位置,并且只创建一行......(而不是 4 行):
declare @json NVARCHAR(MAX);
SET @json=
'{
"Latitudes": [
53.665084,
53.665084,
53.665184,
53.665284
],
"Longitudes":[
17.342853,
17.342953,
17.343053,
17.343153
]
}'
insert into dbo.Coords(
[Latitude],[Longitude])
select Latitude, Longitude from OPENJSON(@json)
WITH(
Latitude FLOAT '$."Latitudes"',
Longitude FLOAT '$."Longitudes"')
PS OPENJSON() 函数适用于 SQL Server 2016 版或 Azure SQL 数据库。以防万一有人会尝试在 SSMS 2014 中运行它,即 ;-)