Мне нужна помощь в создании файлов JSON из таблицы базы данных.Ниже приведен мой пример json, сгенерированный с помощью кода tsql (с использованием SQL Server 2017)
{ "TBLEMPLOYEES":[
{
"ID":1,
"NAME":"SURESH",
"SALARY":1000,
"ADDRESS":{
"EMP_ADDRESS":"101 A ADDRESS1",
"OTHERS":{
"EMP_PHONE":"987-654-4567",
"EMP_CITY":"CITY1"
}
}
},
{
"ID":2,
"NAME":"RAMESH",
"SALARY":2000,
"ADDRESS":{
"EMP_ADDRESS":"125 A ADDRESS2",
"OTHERS":{
"EMP_PHONE":"588-654-4567",
"EMP_CITY":"CITY2"
}
}
}
]}
Ниже приведен код TSQL, который я использую для генерации вывода JSON в SSMS
SELECT ID AS "ID", EMP_NAME AS "NAME", EMP_SALARY AS "SALARY",EMP_ADDRESS AS "ADDRESS.EMP_ADDRESS", EMP_PHONE AS "ADDRESS.OTHERS.EMP_PHONE", EMP_CITY AS "ADDRESS.OTHERS.EMP_CITY" FROM TBLEMPLOYEES FOR JSON path, root('TBLEMPLOYEES')
Теперь возникает проблема, когда я пытаюсь использовать тот же запрос из приложения winform, используя C # .net, я не получаю правильный формат файла Json.В нем нет данных.
Вот код, который я использую
var queryWithForJson = "SELECT ID AS \"ID\", EMP_NAME AS \"NAME\", EMP_SALARY AS \"SALARY\",EMP_ADDRESS AS \"ADDRESS.EMP_ADDRESS\", EMP_PHONE AS \"ADDRESS.OTHERS.EMP_PHONE\", EMP_CITY AS \"ADDRESS.OTHERS.EMP_CITY\" FROM TBLEMPLOYEES FOR JSON PATH, ROOT('TBLEMPLOYEES')";
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var conn = new SqlConnection("Server=localhost\\SQLEXPRESS01;Database=Sample_2018;Trusted_Connection=True;");
var cmd = new SqlCommand(queryWithForJson, conn);
conn.Open();
var jsonResult = new StringBuilder();
var reader = cmd.ExecuteReader();
if (!reader.HasRows)
{
jsonResult.Append("[]");
}
else
{
while (reader.Read())
{
jsonResult.Append(reader.GetValue(0).ToString());
}
}
System.IO.StreamWriter file = new System.IO.StreamWriter(@"D:\Output\TestJson.json");
file.WriteLine(jsonResult.ToString());
Пожалуйста, дайте мне знать правильную процедуру вывода данных JSON (с тем же форматом) из таблицы базы данных вфайл JSON.