Вывод буквальных строковых символов в строку - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь преобразовать. NET datatable в JSON. Используя приведенную ниже функцию, но в моей последней строке отображаются буквальные строковые операторы. Я использую. NET v 4.7.2

public string DataTableToJSONWithStringBuilder(DataTable table)
{
    var JSONString = new StringBuilder();
    if (table.Rows.Count > 0)
    {
        JSONString.Append("[");
        for (int i = 0; i < table.Rows.Count; i++)
        {
            JSONString.Append("{");
            for (int j = 0; j < table.Columns.Count; j++)
            {
                if (j < table.Columns.Count - 1)
                {
                    JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");
                }
                else if (j == table.Columns.Count - 1)
                {
                    JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");
                }
            }
            if (i == table.Rows.Count - 1)
            {
                JSONString.Append("}");
            }
            else
            {
                JSONString.Append("},");
            }
        }
        JSONString.Append("]");
    }
    return JSONString.ToString();
}

JSON:

"{\r\n \"Table\": [\r\n {\r\n \"itemName\": \"PORC : SCARITA \",\r\n \"itemCode\": \"11NAH \",\r\n \"Available_stock\": 48.80000000,\r\n \"pA\": null,\r\n \"pA_cutva\": null,\r\n \"pB\": null,\r\n \"pB_cutva\": null,\r\n \"pC\": null,\r\n \"pC_cutva\": null,\r\n \"unit\": \"KG \",\r\n \"item_class\": \"MARFURI \",\r\n \"item_group\": \"PRODUSE \",\r\n \"meat_type\": \"PORC \",\r\n \"cotatva\": 0.090000,\r\n \"min_qty_order\": null,\r\n \"obsart\": 3,\r\n \"pret_stand\": null,\r\n \"pret_stand_cuTVA\": null,\r\n \"Physical_stock\": 24.80000000,\r\n \"OnTheRoad_stock\": 24.00000000\r\n },\r\n {\r\n \"itemName\": \"PORC : CONGELAT BLOC\",\r\n \"itemCode\": \"111CBL \",\r\n \"Available_stock\": 129.50000000,\r\n \"pA\": 5.30000000,\r\n \"pA_cutva\": 5.78000000,\r\n \"pB\": 5.30000000,\r\n \"pB_cutva\": 5.77700000,\r\n \"pC\": null,\r\n \"pC_cutva\": null,\r\n \"unit\": \"KG \",\r\n \"item_class\": \"MARFURI \",\r\n \"item_group\": \"PRODUSE CARNE \",\r\n \"meat_type\": \"PORC \",\r\n \"cotatva\": 0.090000,\r\n \"min_qty_order\": null,\r\n \"obsart\": 2,\r\n \"pret_stand\": null,\r\n \"pret_stand_cuTVA\": null,\r\n..."

1 Ответ

0 голосов
/ 08 мая 2020

Я использовал шаблон API и пытался вернуть строку, а не просто данные, поэтому мой вывод был странным. Как только я изменил свой код на приведенный ниже, он отлично заработал.

public DataTable Get()
{

    SqlConnection Connection;

    DataSet dataSet = new DataSet();
    connetionString = "Data Source=" + dbIP + ";Initial Catalog=" + sqlCatalog + ";User ID=" + sqlUser + ";Password=" + sqlPassword;
    Connection = new SqlConnection(connetionString);

    SqlDataAdapter dataAdapter = new SqlDataAdapter("getAllItems '%'", Connection);
    List<string> list = new List<string>();


  Connection.Open();
    dataAdapter.Fill(dataSet);
    Connection.Close();

    dataSet.DataSetName = "Items";
    DataTable data = dataSet.Tables[0];


    return data;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...