asp.net JsonConvert.序列化对象添加\r\n

r1zhe5dt  于 2022-12-05  发布在  .NET
关注(0)|答案(1)|浏览(227)

因此我目前正在使用WebAPI,运行时出现以下错误。
当我试图返回一个用JsonConvert.SerializeObject(object)序列化的List时,我的第二个属性(字符串JSON)被回车符和换行符掩盖了。
代码如下:

public class Template
{
    public string Name;
    public string JSON;
}
    public HttpResponseMessage GetAll()
    {
        var items = db.GetTemplates().ToList<Template>();

        var resp = new HttpResponseMessage()
        {
            Content = new StringContent(JsonConvert.SerializeObject(items),Encoding.UTF8,"application/json")
        };
        resp.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

        return resp;

    }

变更为:

Content = new StringContent(JsonConvert.SerializeObject(items.ToList<Template>()[0]),Encoding.UTF8,"application/json")

显示相同的错误
将代码更改为:

Content = new StringContent(JsonConvert.SerializeObject(items.ToList<Template>()[0].JSON),Encoding.UTF8,"application/json")

一切恢复正常...
在浏览器中签入,而不是在Visual Studio中签入!
有人能给我一个提示吗?谷歌就是不让我找到答案。
提前致谢!

hi3rlvi2

hi3rlvi21#

正如Brian Rogers在注解中提到的,使用JsonSerializerSettings的Formatting = Formatting. None属性:

JsonSerializerSettings jsonSettings = new JsonSerializerSettings
{
  Formatting = Formatting.None
};

string jsonString = JsonConvert.SerializeObject(items,jsonSettings);

相关问题