0

我有一个 MVC 4 Web API。通常我希望响应返回所有属性,但有一个地方我只想返回非空值。Formatters.JsonFormatter.SerializerSettings.NullValueHandling我可以通过在全局文件中设置实例的 JsonSerializerSettings 来设置任一行为,GlobalConfiguration.Configuration但我想根据响应同时使用这两种行为。是否有一种简单的方法可以从 API 控制器操作中配置请求范围?

4

2 回答 2

2

通过将控制器操作更改为返回 HttpResponseMessage,您可以更好地控制特定操作的内容返回方式。例如

public HttpResponseMessage Get() {
   var foo = new Foo();

   var objectContent = new ObjectContent<Foo>(foo, new JsonFormatter()
                                {SerializerSettings.NullValueHandling = ???})

    return new HttpResponseMessage() {Content = objectContent};
}
于 2012-11-30T20:56:19.213 回答
0

使用像javascript这样的动态语言在客户端可能更容易做到这一点。

var keys = Object.keys(json);
for(var i = 0; i < keys.length; i++) {
    var propertyName = keys[i];
    if(json[propertyName] === undefined || v[propertyName] === null) {
           json.remove(propertyName);
    }
}
return json;
于 2012-11-30T20:30:51.937 回答