.Net将\放在不属于它们的地方
我需要帮助,我只是想从SQL中获取数据并将其转换为json,但是.NET一直在到处放:O 这些是我尝试使用的一些方法,但我一直得到相同的输出.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
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;
}