Необходимо сгенерировать текст JSON со столбцом, содержащим массив int из SQL Server, с использованием T-SQL.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Необходимо сгенерировать текст JSON со столбцом, содержащим массив int из SQL Server, с использованием T-SQL.

Сообщение Anonymous »

Я задал ChatGPT следующий вопрос:
Как сгенерировать такой текст в формате JSON

Код: Выделить всё

{
"CategoryId": 100,
"AccountId": 200,
"ItemIds": [12, 13, 14, 15],
"Created": "2024-10-23",
"SiteId": 111,
"PriorityLevel": 2
}
в SQL Server с использованием T-SQL?
И ответ, который я получил:

Код: Выделить всё

WITH ItemList AS
(
SELECT 12 AS ItemId
UNION ALL
SELECT 13 AS ItemId
UNION ALL
SELECT 14 AS ItemId
UNION ALL
SELECT 15 AS ItemId
)
SELECT
100 AS CategoryId,
200 AS AccountId,
(SELECT ItemId FROM ItemList FOR JSON PATH, WITHOUT_ARRAY_WRAPPER) AS ItemIds,
'2024-10-23' AS Created,
111 AS SiteId,
2 AS PriorityLevel
FOR
JSON PATH, WITHOUT_ARRAY_WRAPPER;
В нем говорилось, что это приведет к результату, а это именно то, что я хотел, как показано ниже:

Код: Выделить всё

{
"CategoryId": 100,
"AccountId": 200,
"ItemIds": [12, 13, 14, 15],
"Created": "2024-10-23",
"SiteId": 111,
"PriorityLevel": 2
}
Но на самом деле это произошло, когда я выполнил образец запроса:

Код: Выделить всё

{
"CategoryId": 100,
"AccountId": 200,
"ItemIds": "{\"ItemId\":12},{\"ItemId\":13},{\"ItemId\":14},{\"ItemId\":15}",
"Created": "2024-10-23",
"SiteId": 111,
"PriorityLevel": 2
}
Как сделать так, чтобы ItemIds были «ItemIds»: [12, 13, 14, 15] вместо «ItemIds»:»{\"ItemId\":12 },{\"ItemId\":13},{\"ItemId\":14},{\"ItemId\":15 который выдал исключение десериализатора, когда я пытался десериализовать сообщение JSON к классу, который ожидает ItemIds как int[] в C# ?

Подробнее здесь: https://stackoverflow.com/questions/791 ... sql-server
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»