.Net将\放在不属于它们的地方

.Net将\放在不属于它们的地方,.net,json,api,.net,Json,Api,我需要帮助,我只是想从SQL中获取数据并将其转换为json,但是.NET一直在到处放:O 这些是我尝试使用的一些方法,但我一直得到相同的输出 SqlConnection Connection; DataSet dataSet = new DataSet(); SqlDataAdapter dataAdapter = new SqlDataAdapter("exec getAllItems '%'", Connection); Connection.Open(); dataAdapter.Fi

我需要帮助,我只是想从SQL中获取数据并将其转换为json,但是.NET一直在到处放:O 这些是我尝试使用的一些方法,但我一直得到相同的输出

SqlConnection Connection;

DataSet dataSet = new DataSet();

SqlDataAdapter dataAdapter = new SqlDataAdapter("exec getAllItems '%'", Connection);
Connection.Open();
dataAdapter.Fill(dataSet);
Connection.Close();

DataTable data = dataSet.Tables[0];

itemCount = data.Rows.Count;


string json = JsonConvert.SerializeObject(dataSet, Formatting.Indented);


string builtJson = DataTableToJSONWithJSONNet(data);
return json ;

公共字符串DataTableToJSONWithJSONNet(DataTable表)
{
string JSONString=string.Empty;
JSONString=JsonConvert.SerializeObject(表);
返回JSONString;
}
公共字符串DataTableToJSONWithJavaScriptSerializer(DataTable表)
{
JavaScriptSerializer jsSerializer=新的JavaScriptSerializer();
List parentRow=新列表();
字典儿童行;
foreach(table.Rows中的DataRow行)
{
childRow=新字典();
foreach(table.Columns中的数据列col)
{
添加(列名称,行[col]);
}
parentRow.Add(childRow);
}
返回jsSerializer.Serialize(parentRow);
}
公共字符串DataTableToJSONWithStringBuilder(DataTable表)
{
var JSONString=new StringBuilder();
如果(table.Rows.Count>0)
{
JSONString.Append(“[”);
for(int i=0;i
“{\r\n\”Table\”:[\r\n{\r\n\“itemName\”:“proc:SCARITA\”,\r\n\“itemCode\”:“11NAH\”,\r\n\“Available\u stock\”:48.8000000\r\n\“pA\”:null\r\n\“pA\u cutva\”:null\r\n\“pB\”:null\r\n\“pB\u cutva\”:null\r\n\“pB\u cutva\”:null\r\n\”pC\:null\r\n\:null\r\n\“pC\”cutva\:null\“,\r\n”“项目类别”“,\r\n”“项目组”“,\r\n”“产品类型”“,\r\n”“肉类类型”“:”“门廊”“,\r\n”“科塔塔瓦”“:0.090000,\r\n”“最小订单数量”“:null,\r\n”“OBSTART”“:3、\r\n”“预加工台架”“:null、\r\n”“预加工台架”“:null、\r\n\:null、\r\n\r\n\r\n\r\r\n\r\n\r\n\“OnTheRoad\u stock\”:24.00000000\r\n\r\n\r\n“itemName\”:“Proc:CONGELAT BLOC\”,\r\n“itemCode\”:“111CBL\”,\r\n“Available\u stock\”:129.50000000,\r\n“pA\”:5.30000000,\r\n“pA cutva\”:5.7800000,\r\n“pB\”:5.30000000,\r\n“pB\”:5.7700,\r\n\r\npC\u cutva\\:空、\r\n\“单位”:“千克”、\r\n\“项目类别”:“MARFURI”、\r\n\“项目组”:“产品卡内”、\r\n\“肉类类型”:“门廊”、\r\n\“cotatva\”:0.090000、\r\n\“最小订单数量”:空、\r\n\“OBSTART\:2、\r\n\“肉摊”\:空、\r\n\r\n\r\n


谢谢你的帮助!

我使用了一个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;
        }
公共数据表Get() { SqlConnection连接; 数据集=新数据集(); connetionString=“数据源=“+dbIP+”;初始目录=“+sqlCatalog+”;用户ID=“+sqlUser+”;密码=“+sqlPassword; 连接=新的SqlConnection(connetionString); SqlDataAdapter dataAdapter=新的SqlDataAdapter(“getAllItems“%”,连接); 列表=新列表(); Connection.Open(); dataAdapter.Fill(数据集); Connection.Close(); dataSet.DataSetName=“Items”; DataTable data=dataSet.Tables[0]; 返回数据; }
为什么不能使用newtonsoft(JsonConvert.SerializeObject)而不是自定义转换将dataset/table转换为JSON。我尝试了newtonsoft也得到了相同的结果,当我转换为xml时,字符串是可以的,但JSON最终看起来是这样的。我使用的是.NET 4.7.2,我尝试了newtonsoft 12.0.3版,您在哪里看到了这些反斜杠?调试器会显示源代码中可能出现的字符串,并在visual only.write中添加转义将文本输出到文件中,它们不应该在那里
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;
        }