WebApi Odata:从响应中删除元数据

WebApi Odata:从响应中删除元数据,odata,asp.net-web-api,Odata,Asp.net Web Api,我正在开发一个用于内部使用的WebApi Odata服务。我想从服务器的响应中删除除序列化数据之外的所有其他数据。 我想删除所有这些内容: { "@odata.context":"http://192.168.150.86:9933/odata/$metadata#Terminal","value":[ ] } 这里只留下“终端”数组 有什么办法可以做到这一点吗?这就是如何做到的 var ODataJSON = JsonConvert.DeserializeObject<JOb

我正在开发一个用于内部使用的WebApi Odata服务。我想从服务器的响应中删除除序列化数据之外的所有其他数据。 我想删除所有这些内容:

{
  "@odata.context":"http://192.168.150.86:9933/odata/$metadata#Terminal","value":[

  ]
}
这里只留下“终端”数组


有什么办法可以做到这一点吗?

这就是如何做到的

var ODataJSON = JsonConvert.DeserializeObject<JObject>(json);
ODataJSON.Property("@odata.context").Remove();
ODataJSON.Add("Terminal", ODataJSON["value"]); //adding Terminal attribute
ODataJSON.Property("value").Remove(); // removing default value attribute.
var-ODataJSON=JsonConvert.DeserializeObject(json);
属性(“@odata.context”).Remove();
Add(“终端”,ODataJSON[“值”])//添加终端属性
ODataJSON.Property(“value”).Remove();//删除默认值属性。

将以下选项添加到查询字符串中:

$format=application/json;odata.metadata=none

这将从结果中删除odata元数据。

假设您正在编写一个返回IHttpActionResult的新函数。要返回数据,可以使用Json方法。它删除元数据

我需要从服务器端的响应中删除它,而不是在客户端。初始问题没有指定,但据我所知,这是无法删除的,这是odata默认情况下返回的内容。它不起作用。我尝试在postman中使用内容类型标头,也尝试使用Accept标头,但其中没有一个对我有效。@IshworKhanal它应该添加到URL查询字符串中,而不是添加到标头中。下面是它的外观:
example.com/myapi?$format=application/json;odata.metadata=none
如果我将其添加为odata querystring指令(如本答案所示),它对我都有效,但如果我使用Fiddler发送具有以下请求头的请求,它也有效:Accept:application/json;odata.metadata=none两者给出相同的结果:@odata.context行未包含在响应中。