Проверьте уникальные ключи JSON в SQL Server

Как в SQL Server проверить, является ли строка допустимой JSON и все ли ключи уникальны?

Согласно Документация T-SQL, обычный метод ISJSON не проверяет уникальность ключей на одном уровне.

Какая версия SQL-сервера? 2016 и новее имеет удобную встроенную проверку JSON. Искать ISJSON, JSON_VALUE, JSON_QUERY

Ryan B. 03.10.2018 18:16
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
2
1
476
1

Ответы 1

Для этого вы можете использовать Рекурсивное общее табличное выражение. EG что-то вроде:

DECLARE @json NVARCHAR(4000) = N'{  
   "StringValue":"John",  
   "IntValue":45,  
   "TrueValue":true,  
   "FalseValue":false,  
   "NullValue":null,  
   "ArrayValue":["a","r","r","a","y"],  
   "ObjectValue":{"obj":"ect"}  
}';

with q as
(
  select [key] path, [key], value, type, 0 level
  from openjson(@json)
  union all
  select concat(q.path,'\',n.[key]), n.[key], n.value, n.type, q.level + 1
  from q 
  cross apply openjson(q.value) n
  where q.type in (4,5)
 )
 select *, count(*) over (partition by path) pathCount
 from q

Другие вопросы по теме