2016-09-22 97 views
0
{ 
    "ID":1, 
    "KEY1":"", 
    "ARRAYKEY1":[ 
     { 
      "ARRAYKEY":"" 
      "OBJECTKEY":{ 
       "OBJ":"" 
      } 
     } 
    ] 
} 

上面是我存储在数据库中的JSON对象,我想使用OPENJSON创建表格格式。我知道我可以做整个OPENJSON WITH()并手动创建所有的列。我想知道是否有人知道如何递归或以编程方式创建表而不必为表的每个键标识。我最终可能会有几十个领域。我不担心排除任何项目。如果我想把所有的记录都放回去,我甚至可以从新的2016 SQL Server开始?将JSON转换成表格

回答

2

Here是官方文档。

SET @json = 
N'[ 
     { "id" : 2,"info": { "name": "John", "surname": "Smith" }, "age": 25 }, 
     { "id" : 5,"info": { "name": "Jane", "surname": "Smith" }, "dob": "2005-11-04T12:00:00" } 
]' 

SELECT * 
FROM OPENJSON(@json) 
WITH (id int 'strict $.id', 
     firstName nvarchar(50) '$.info.name', lastName nvarchar(50) '$.info.surname', 
     age int, dateOfBirth datetime2 '$.dob') 
+0

我知道它的官方文档。但是,这是手动创建每一列。我正在查看是否有人对如何动态创建它以及将整个JSON对象转换为表格有任何想法。 – tjg92