C# 为什么Controller.Json和newtonsoftjson返回不同的结果?

C# 为什么Controller.Json和newtonsoftjson返回不同的结果?,c#,asp.net-core,json.net,asp.net-core-mvc,C#,Asp.net Core,Json.net,Asp.net Core Mvc,我有一个包含匿名对象集合的匿名对象,但将其更改为json在controller的json和Newtonsoft json之间有所不同-如何从json(数据)中删除这些附加字段 使用Newtonsoft json时的结果: 返回状态码(200,JsonConvert.SerializeObject(数据)) 返回状态码(200,Json(数据)) 因为Controller.Json生成JsonResult对象,该对象包含其他参数。可以找到这些方面的概述。而Newtonsoft将指定的对象序列化为J

我有一个包含匿名对象集合的匿名对象,但将其更改为json在
controller的json
Newtonsoft json
之间有所不同-如何从
json(数据)
中删除这些附加字段

使用Newtonsoft json时的结果:

返回状态码(200,JsonConvert.SerializeObject(数据))

返回状态码(200,Json(数据))


因为
Controller.Json
生成
JsonResult
对象,该对象包含其他参数。可以找到这些方面的概述。而Newtonsoft将指定的对象序列化为JSON字符串

在数据方面(序列化),它们确实会产生相同的结果


如果要附加到这些属性,通常在对象上使用getter和setter:

return new JsonResult(result)
{
    StatusCode = 200
};
并且这个对象应该从控制器返回,而不是
returnstatuscode(200,Json(data))


还值得指出的是,
Json
是JsonResult的扩展方法(helper方法)。它们都返回相同的东西,一个
JsonResult
的实例(它反过来继承
ActionResult


调用
Json
JsonResult
是一个优先事项,您将不得不为
Json
编写更少的代码,并且不必在控制器中声明
JsonResult
的实例,因为这将在幕后为您完成。

因为
controller.Json
生成
JsonResult
对象,其中包含其他参数。可以找到这些方面的概述。而Newtonsoft将指定的对象序列化为JSON字符串

在数据方面(序列化),它们确实会产生相同的结果


如果要附加到这些属性,通常在对象上使用getter和setter:

return new JsonResult(result)
{
    StatusCode = 200
};
并且这个对象应该从控制器返回,而不是
returnstatuscode(200,Json(data))


还值得指出的是,
Json
是JsonResult的扩展方法(helper方法)。它们都返回相同的东西,一个
JsonResult
的实例(它反过来继承
ActionResult


调用
Json
JsonResult
是一个优先选择的问题,您将不得不为
Json
编写更少的代码,并且不必在控制器中声明
JsonResult
的实例,因为这将在幕后为您完成。

是的,我刚想在“喜欢就喜欢”中给出一个答案,但您现在已经涵盖了这一点。答复1!=响应2,因为一个是json数据,另一个是jsonresult对象,正好包含数据。值得一提的是,在这里的示例中设置
StatusCode
是多余的。创建一个
JsonResult
实例而不是使用
Json
便利方法也没有什么好处。是的,我刚想回答一下“喜欢就喜欢”,但你现在已经谈到了。答复1!=响应2,因为一个是json数据,另一个是jsonresult对象,正好包含数据。值得一提的是,在这里的示例中设置
StatusCode
是多余的。创建
JsonResult
实例而不是使用
Json
便利方法也没有什么好处。
{
    "contentType": null,
    "serializerSettings": null,
    "statusCode": null,
    "value":
    {
        "something": true,
        "data": 
        [
            {
                "id": "d5696edd-4321-4dba-9eba-c4df3644bb78",
                "name": "XYZ"
            }
        ]
    }
}
return new JsonResult(result)
{
    StatusCode = 200
};