Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как распарсить такой JSON?  [new]
Santa89
Member

Откуда:
Сообщений: 1471
Есть JSON:

{"metric":{"name":"XX","job":"node"},"values":[[1517097600,"1151498"],[1517098500,"1151498"],[1517182200,"1151529"],[1517183100,"1151529"],[1517184000,"1151529"]]}


Пишу:

	SELECT
	*
	FROM OPENJSON((SELECT DATA FROM #T), N'lax $.data.result')
	WITH
	(
		[instance] varchar(100) '$.metric.instance',
		[job] varchar(100) '$.metric.job',
		[val] int '$.values[1]'
	)


Где в поле DATA в таблице #T содержится мой JSON.
Поля job и instanse подтягиваются корректно, а вот val - не может распарситься, получается NULL.
Какой то интересный массив попался...Кто нибудь с таким сталкивался?
30 янв 18, 11:56    [21150307]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такой JSON?  [new]
Santa89
Member

Откуда:
Сообщений: 1471
Победил через написание [0][0] - как синтаксис многомерного массива
30 янв 18, 13:17    [21150749]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такой JSON?  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
а что возвращает '$.values[1]', оно укладывается в int?
30 янв 18, 13:18    [21150757]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такой JSON?  [new]
Santa89
Member

Откуда:
Сообщений: 1471
Дедушка,

values[1] возвращает пустоту. видимо потому что тут двумерный массив. А вот values[1][1] возвратит 1151498 а values [1][0] возвратит 1517098500.

В int укладывается
30 янв 18, 13:35    [21150845]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такой JSON?  [new]
msLex
Member

Откуда:
Сообщений: 7726
Дедушка
а что возвращает '$.values[1]', оно укладывается в int?

Конечно, нет.
Это должно вернуть "подмассив" [1517098500,"1151498"], который, видимо, ни к чему (в TSQL) привести нельзя.
30 янв 18, 13:37    [21150852]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такой JSON?  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
Santa89,

это был наводящий вопрос
впрочем, пока я писал вы уже и сами нашли решение :)
30 янв 18, 13:39    [21150870]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить