C# 在字符串中添加\r\n

C# 在字符串中添加\r\n,c#,asp.net,.net,json,visual-studio,C#,Asp.net,.net,Json,Visual Studio,我正在尝试用C#手动构造JSON 为此,我使用以下字符串: string Response = "{\r\n\"Token\":\"guid\"\r\n}"; 但不是这个 { "Token" :"guid" } 我有这个 "{\r\n\"Token\":\"guid\"\r\n}" 我尝试了Environment.NewLine,也得到了同样的结果 怎么了 更新 1) 作为对请求的响应,我可以发送不同的回答:“令牌”或“请求”。我不想做这个: if(true) Result = Json

我正在尝试用C#手动构造JSON

为此,我使用以下字符串:

string Response = "{\r\n\"Token\":\"guid\"\r\n}";
但不是这个

{
 "Token" :"guid"
}
我有这个

"{\r\n\"Token\":\"guid\"\r\n}"
我尝试了Environment.NewLine,也得到了同样的结果

怎么了

更新

1) 作为对请求的响应,我可以发送不同的回答:“令牌”或“请求”。我不想做这个:

if(true) Result = Json(new { Token= "guid"});
else     Result = Json(new { Request = "data array"});
2) 它是webapi函数。我需要有“好”的结果在浏览器网站上

public IHttpActionResult Logon([FromBody]Logon_Request model)
{
 //some logic
 string Response_Type=...;
 string Response_Value=...;

 string Response = "{\r\n\"" + Response_Type + "\":\"" + Response_Value + "\"\r\n}";
 IHttpActionResult Result = Ok(Response);

 return Result;
}

我相信您正在调试器中查看
Response
的值。如果你在某处利用你的价值,你会发现它实际上是正确的。正如Alex K在问题下方的注释中指出的,调试器总是显示带有转义字符的字符串,即使您使用
Environment.NewLine

通过执行以下操作,您可以通过输出到控制台(或即时窗口,具体取决于您的VS设置)来验证它实际上是否正常工作:

System.Diagnostics.Debug.Print(Response);

另一方面请注意:您应该尽可能遵守变量的正确命名约定——例如,对于局部变量,
response
而不是
response

注意调试器显示带有转义字符的字符串。我在浏览器端也看到了这一点。使用邮递员。如果您尝试
System.Diagnostics.Debug.Print(响应),该怎么办,它会输出你想要的吗?将你的json写入文件,你会看到它和你期望的一样。我怀疑邮递员也在做同样的事情。。。我很怀疑你是否真的有编码文本。(无论如何,你为什么要手动构建JSON?)我不知道还能说什么。我测试了它,它对我来说很好。