Asp.net mvc 格式化ASP.NETMVC4WebAPI的JSON输出

Asp.net mvc 格式化ASP.NETMVC4WebAPI的JSON输出,asp.net-mvc,json,asp.net-mvc-4,Asp.net Mvc,Json,Asp.net Mvc 4,我有一个Web API项目,其模型如下所示: public class Account{ string FirstName{get;set;} string LastName{get;set;} } first_name last_name 我希望JSON响应对属性使用不同的格式和大小写,如下所示: public class Account{ string FirstName{get;set;} string LastName{get;set;} } first_name last_n

我有一个Web API项目,其模型如下所示:

public class Account{

string FirstName{get;set;}
string LastName{get;set;}
}
first_name
last_name
我希望JSON响应对属性使用不同的格式和大小写,如下所示:

public class Account{

string FirstName{get;set;}
string LastName{get;set;}
}
first_name
last_name

是否有一种方法可以通过某种json格式化程序全局执行此操作,或者最好使用适当的大小写创建单独的ViewModel类?

您应该创建单独的ViewModel类,原因有很多

最好使用单独的viewmodel类,以免模型曝光过度。如果使用具有10个字段的实体类作为视图模型,并且只想公开其中5个字段,则恶意用户可能会使用querystring发布额外数据,并且自动绑定可能会在您未意识到的情况下将其融合

在您的示例中,您可能希望为字段使用完全不同的名称。这是为实体类创建自定义viewmodel的理想选择

分离这些问题将有助于您的应用程序在将来更具可重用性,并且在当前更易于测试/调试。如果发现自己处于太多视图模型的情况下,考虑将这些不同的控制器、视图和模型分解为单独的区域()。 作为旁注,如果您想要格式化JSON,那么在javascript中完成之后可能比在手工之前更容易,因为通常编辑JSON序列化程序类是一项艰巨的任务。您可以编写一个脚本,该脚本可以自动将驼峰大小写转换为独立的小写。这样做的一个缺点是,如果您不希望功能像这样运行,那么它可能会在将来产生意想不到的影响