Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用vb.net将JSON文件导入SQL Server数据库_Sql Server_Json_Vb.net - Fatal编程技术网

Sql server 使用vb.net将JSON文件导入SQL Server数据库

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

我想导入一个具有以下结构的大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 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对象,我可以轻松地将它注入到我的数据库中。