c# - C# Newtonsoft.Json.JsonConvert.SerializeObject 在双引号前添加反斜杠
问题描述
我有一个使用以下代码返回 json 的 aspnet web api:
Project_Model mdl = new Project_Model(transactionId, data);
string json = string.Empty;
json = JsonConvert.SerializeObject(mdl);
这是变量“json”的值:
{\"Pj_Id\":\"23a6bd47-c35a-4ee3-8998-bd0406bc5839\",\"Pj_CUsr_Id\":\"8cb52c3e-25b7-412d-8010-cadd75f1f64b\",\"Pj_Number\":\"test 101\",\"Pj_Name\":\"Test Project 101\",\"Pj_Location\":\"1551 Main St, Houston\"}
但它应该看起来像这样:
{
"Pj_Id": "23a6bd47-c35a-4ee3-8998-bd0406bc5839",
"Pj_CUsr_Id": "8cb52c3e-25b7-412d-8010-cadd75f1f64b",
"Pj_Number": "test 101",
"Pj_Name": "Test Project 101",
"Pj_Location": "1551 Main St, Houston"
}
我知道我们会在调试器中得到这样的转义字符,但在输出中不会。上面带有反斜杠的示例是从 PostMan 的同一 API 的输出中复制而来的。
有人可以告诉我为什么会发生这种情况以及可以做些什么来清理它?
谢谢。
解决方案
@phuzi 在上面的评论中是正确的:
理想情况下,您不应该自己序列化 JSON,因为它很可能被双重序列化。只需从 ASP.Net Web API 操作方法返回 mdl 而不是 JSON
我对它进行了双重序列化。我刚刚返回课程,结果是完美的 json。
谢谢。
推荐阅读
- ios - 每次加载应用程序时如何使用照片库 ios 中的照片?
- javascript - 如何在向导中编辑表单并将其状态保存为向导
- php - 具有无休止的解析语法错误的 WordPress 网站
- parsing - LALR 解析器比递归下降解析器慢
- python - 从其他 2 列的值创建新的数据框列
- sql-server-2005 - 无法将应用程序连接到 Microsoft SQL Server
- php - PHP 站点在 localhost:8000 上运行正确,但在 XAMPP 或其他服务器上出现错误。如何创建.htaccess?
- javascript - 在一个史诗 RXJS 中调用另一个史诗
- wordpress - 在 dokan 插件上隐藏访问者的供应商信息
- python - 在 PySerial 中监控 RTS/DTR 行