ASP.NETCoreJson对象的格式很奇怪,格式为u0022
c#
我打算从 ASP.NET Core 控制器做一个 JSON 响应,但它并不像我想象的那么简单。
一个简单的字符串 {"ConfigValue":"192.168.1.125:1880"}应该被序列化为一个 JsonObject 并且这个对象应该是 JSON 响应的一部分。
但是返回 Json(str) 响应类似于
{u0022ConfigValueu0022:u0022192.168.1.125:1880u0022}
我不知道如何摆脱 u0022
public class commonController : Microsoft.AspNetCore.Mvc.Controller
{
private IConfiguration config;
public commonController(IConfiguration configuration)
{
config = configuration;
}
// GET
[Route("getConfigEntry/{key?}")]
public JsonResult getConfigEntry(string? key)
{
Dictionary<string, string> dict = new Dictionary<string, string>
{
{"ConfigValue", "192.168.1.125:1880"}
};
str = JsonConvert.SerializeObject(dict,Formatting.None); //from debugger variable viewer {"ConfigValue":"192.168.1.125:1880"}
return Json(str); // "{u0022ConfigValueu0022:u0022192.168.1.125:1880u0022}"
}
}
回答
您将两次序列化为 JSON - 首先将字典序列化为字符串,然后将该字符串序列化为 JSON 值......这涉及转义引号。
你应该只序列化一次 - 你根本不需要调用JsonConvert.SerializeObject:
return Json(dict);