Sql server 使用vb.net将JSON文件导入SQL Server数据库
我想导入一个具有以下结构的大JSON文件:Sql server 使用vb.net将JSON文件导入SQL Server数据库,sql-server,json,vb.net,Sql Server,Json,Vb.net,我想导入一个具有以下结构的大JSON文件: { "series_id":"NG.RL2R04SOK_1.A", "name":"Oklahoma Natural Gas Plant Liquids, Reserves Revision Decreases, Annual", "units":"Million Barrels", "f":"A", "unitsshort":"MMbbl", "description":"Oklahoma Natural Gas Plant
{
"series_id":"NG.RL2R04SOK_1.A",
"name":"Oklahoma Natural Gas Plant Liquids, Reserves Revision Decreases, Annual",
"units":"Million Barrels",
"f":"A",
"unitsshort":"MMbbl",
"description":"Oklahoma Natural Gas Plant Liquids, Reserves Revision Decreases",
"copyright":"None","source":"EIA, U.S. Energy Information Administration",
"iso3166":"USA-OK",
"start":"1979",
"end":"2008",
"last_updated":"13-AUG-13 11.49.51 AM",
"data":[
["2008","136"],
["2007","73"],
...
["1980","69"],
["1979","54"]
]
}
输入到SQL Server数据库中
通常我使用VB.net将CSV/TXT/Excel导入该数据库,但我不了解JSON
有没有一个简单的方法可以做到这一点
非常感谢在SQL Server 2016中,您可以直接使用TSQL打开(和导入)json文件:
SELECT import.*
FROM OPENROWSET (BULK 'f:\import.json', SINGLE_CLOB) as j
CROSS APPLY OPENJSON(BulkColumn)
WITH(
[series_id] nvarchar(100),
[name] nvarchar(100),
[units] nvarchar(100),
[f] nvarchar(100),
[unitsshort] nvarchar(100),
[description] nvarchar(100),
[copyright] nvarchar(100),
[iso3166] nvarchar(100),
[start] int,
[end] int,
[last_updated] nvarchar(100),
[data] nvarchar(100)
) AS import
此查询返回一个表,其中包含从json文件读取的数据,并使用
with
子句中指定的列进行组织。如果要保存json字符串/文件,请保存它。您真的在问如何将json反序列化为数据,以便导入/保存各种数据元素吗?从您的描述来看,您似乎在尝试直接在sql server中执行此操作,而不使用vb.net。是这样吗?不,没有简单的方法可以做到这一点,您必须在SSI上完成这一点并对其进行编码。我个人推荐C#而不是VB,但这是你的选择。您需要创建一个与JSON具有相同结构的对象,并在代码上使用JSON反序列化器将其放入对象中。然后需要将对象加载到数据库中。另一方面,SQL Server 2016与JSON兼容,并具有一些内置功能。感谢所有回复,但不幸的是,我无法直接访问SQL Server(及其SQL Server 2012)。这就是为什么我只需要一个Json解析器来转换成一个,例如,一个datatable对象,我可以轻松地将它注入到我的数据库中。