c# - 接收json字符串数据库MS SQL数据库,格式化问题
问题描述
我运行一个 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);
}
解决方案
您可以使用 ToString 方法从结果中创建一个字符串。字符串中的“奇怪”字符是转义字符。
您可以使用 NuGet 包 Newtonsoft.Json 序列化和反序列化 json。例如:
JsonConvert.SerializeObject(someobject);
这将从您传入的对象生成一个 json 字符串。
JsonConvert.DeserializeObject<SomeObject>(jsonString);
这将从您传入的 jsonString 生成一个 SomeObject 类型的对象。
希望这对你有帮助!
推荐阅读
- shopify - [Shopify]如何更改搜索结果的列表顺序?
- django - 如何比较 Django 表单中的 2 个字段
- javascript - NuxtJS (Vue.js) Google Maps & Autocomplete inside v-if 一旦切换就不会显示,仅在初始页面加载时
- excel - 过滤和删除行
- php - 如何在 WordPress 中添加带有自定义后缀的新图像尺寸?
- azure - Azure DevOp-部署组-使目标 VM 联机
- excel - Excel冻结特定列
- maven - Intellij 2020.3 for maven 项目中的 Jhipster v6.10.5 javax.servlet 错误
- reactjs - 右键单击引导 OverlayTrigger?
- javascript - 当提到更高的角色时返回