Подход 1:
Вы можете написать свой запрос следующим образом.
select [Name], Age, Position
FROM
(
select [Value], [Key]
from TableOne
) d
pivot
(
max([Value])
for [Key] in ([Name], Age, Position)
) piv
Вы получите вывод, подобный следующему.
+----------+-----+-----------+
| Name | Age | Position |
+----------+-----+-----------+
| John Doe | 30 | Developer |
+----------+-----+-----------+
Онлайн-демонстрация
Теперь сопоставьте этот вывод с эквивалентной моделью в вашей среде интерфейса, и вы получите желаемый JSON, как показано ниже.
{"Name":"John Doe","Age":"30","Position":"Developer"}
Подход 2 (вернуть JSON из БД непосредственно в виде строки)
Для этого вы можете написать свой запрос следующим образом.
select [Name], Age, Position
FROM
(
select [Value], [Key]
from TableOne
) d
pivot
(
max([Value])
for [Key] in ([Name], Age, Position)
) piv
for json auto
Подход 3:
Обычно считывает данные из DB
и преобразует их в соответствующую модель с 3 свойствами, используя LINQ
или простой оператор if.