我运行一个C#应用程序,该应用程序使用存储过程从MS SQL 2016获取json。
string t = da.ExecuteScalar().ToString();
我得到了格式奇怪的json:
"{\"Komponent\":\"00066X96A\",\"Opis\":\"Part2 II F P\\/L S!\\\"31\\\"\",\"Jednos\":\"szt\",\"Enabled\":true,\"Powierzchnia\":0.0070,\" ... SQLcommand added escaped char.
我的存储过程从Management Studio生成了清晰的json,但是C#应用添加了奇怪的字符。
在C#中,我执行标量:
SqlConnection conn2 = new SqlConnection(builder2.ConnectionString);
conn2.Open();
SqlCommand da = new SqlCommand("[dbo].[R1079]", conn2 );
da.CommandType = CommandType.StoredProcedure;
string t = da.ExecuteScalar().ToString();
在MVC应用中作为响应发送时,不仅是调试模式,也会发生这种情况:
public JsonResult Test(int id)
{
SqlConnectionStringBuilder builder2 = new qlConnectionStringBuilder();
builder2.ConnectionString= "Data Source=cz1-dbs\\BER;Initial Catalog=BER;Integrated Security=True;Application Name=Rapor.exe";
SqlConnection conn2 = new SqlConnection(builder2.ConnectionString);
conn2.Open();
SqlCommand da = new SqlCommand("[dbo].[R1079]", conn2 );
da.CommandType = CommandType.StoredProcedure;
string t = da.ExecuteScalar().ToString();
return Json(t, "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:1)
您可以使用ToString方法从结果中生成一个字符串。字符串中的“怪异”字符是转义字符。
您可以使用NuGet包Newtonsoft.Json对json进行序列化和反序列化。 例如:
JsonConvert.SerializeObject(someobject);
这将从您传入的对象生成一个json字符串。
JsonConvert.DeserializeObject<SomeObject>(jsonString);
这将从您传入的jsonString中生成SomeObject类型的对象。
希望这对您有帮助!