奇怪格式的数据显示如何将其转换为json格式 [英] Data display on strange format how to convert it to json format

查看:67
本文介绍了奇怪格式的数据显示如何将其转换为json格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题



problem

data display on strange format How to convert it to json format 





我将列名的对象数据的函数返回列表传递给表名



含义函数返回列名与表引用连接



但问题数据显示格式如下:





I make function return list of object data of column name where pass table name

meaning function return column names joined with table reference

but problem data display in strange format as below :

the result as following

[1,1,"كود الموظف","EmployeeId","Employees",2,2,"الفرع","BranchCode","Employees",3,3,"الاسم","EmployeeName","Employees"]



如何在json格式上显示上面的数据意味着显示数据为


How to display data above on json format meaning show data as

as [rowno:1,code:1,arabiccaption:كود الموظف ,etc.....





我尝试过:





What I have tried:

[HttpGet("{tableName}")]
       [Produces("application/json")]
       public List<object> GetColumnNames([FromRoute] string tablename)
       {

           var columnNames = new List<object>();
           using (var command = _context.Database.GetDbConnection().CreateCommand())
           {

               command.CommandText = $"SELECT row_number() over (order by code asc ) as rownum,code ,ArabicCaption, COLUMN_Name,TableName  FROM INFORMATION_SCHEMA.COLUMNS left join ReferenceFiles on INFORMATION_SCHEMA.COLUMNS.COLUMN_Name=ReferenceFiles.FieldName and INFORMATION_SCHEMA.COLUMNS.TABLE_NAME=ReferenceFiles.TableName WHERE TableName =  N'{tablename}'  and TABLE_NAME= N'{tablename}'";

               _context.Database.OpenConnection();
               using (var reader = command.ExecuteReader())
               {
                   if (reader.HasRows)
                   {
                       while (reader.Read())
                       {
                           columnNames.Add((Int64)reader["rownum"]);
                           columnNames.Add((Int32)reader["code"]);
                           columnNames.Add((string)reader["ArabicCaption"]);
                           columnNames.Add((string)reader["COLUMN_Name"]);
                           columnNames.Add((string)reader["TableName"]);
                       }
                   }
                   else
                   {
                       columnNames.Add("Not Found");
                   }
               }
           }
           return columnNames;

       }

推荐答案

SELECT row_number()over(按代码asc排序)as rownum,code,ArabicCaption,COLUMN_Name,TableName FROM INFORMATION_SCHEMA.COLUMNS左连接ReferenceFiles在INFORMATION_SCHEMA.COLUMNS.COLUMN_Name = ReferenceFiles.FieldName和INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = ReferenceFiles.TableName WHERE TableName = N'{tablename}'和TABLE_NAME = N' {表名};

_context.Database.OpenConnection();
using(var reader = command.ExecuteReader())
{
if(reader.HasRows)
{
while(reader.Read())
{
columnNames.Add((Int64)reader [rownum]);
columnNames.Add((Int32)reader [code]);
columnNames.Add((string)reader [ArabicCaption]);
columnNames.Add((string)reader [COLUMN_Name]);
columnNames.Add((string)reader [TableName]);
}
}
其他
{
columnNames.Add(未找到);
}
}
}
return columnNames;

}
"SELECT row_number() over (order by code asc ) as rownum,code ,ArabicCaption, COLUMN_Name,TableName FROM INFORMATION_SCHEMA.COLUMNS left join ReferenceFiles on INFORMATION_SCHEMA.COLUMNS.COLUMN_Name=ReferenceFiles.FieldName and INFORMATION_SCHEMA.COLUMNS.TABLE_NAME=ReferenceFiles.TableName WHERE TableName = N'{tablename}' and TABLE_NAME= N'{tablename}'"; _context.Database.OpenConnection(); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { columnNames.Add((Int64)reader["rownum"]); columnNames.Add((Int32)reader["code"]); columnNames.Add((string)reader["ArabicCaption"]); columnNames.Add((string)reader["COLUMN_Name"]); columnNames.Add((string)reader["TableName"]); } } else { columnNames.Add("Not Found"); } } } return columnNames; }


您将返回一个数组,其中包含每行中每列的值,展平为一个清单。你需要返回一个对象数组:

You're returning an array containing the value of every column from every row, flattened out into a single list. You need to return an array of objects instead:
while (reader.Read())
{
    columnNames.Add(new
    {
        rownum = (Int64)reader["rownum"],
        code = (Int32)reader["code"],
        arabicCaption = (string)reader["ArabicCaption"],
        columnName = (string)reader["COLUMN_Name"],
        tableName = (string)reader["TableName"]
    });
}



返回的数据类似于:


The returned data will look something like:

[
    {
        rownum: 1,
        code: 1,
        arabicCaption: "كود الموظف",
        columnName: "EmployeeId",
        tableName: "Employees"
    },
    {
        rownum: 2,
        code: 2,
        arabicCaption: "الفرع",
        columnName: "BranchCode",
        tableName: "Employees"
    },
    {
        rownum: 3,
        code: 3,
        arabicCaption: "الاسم",
        columnName: "EmployeeName",
        tableName: "Employees"
    }
]


这篇关于奇怪格式的数据显示如何将其转换为json格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆