将 Json 对象反序列化为 .Net 时type,如果字段名称不匹配,我发现您可以type用以下方式装饰您的属性[JsonProperty(PropertyName = "name")]
对于一些不匹配的属性来说,这很好,但是有没有办法设置约定或规则呢?
杰森
{
"Job": [
{
"Job #": "1",
"Job Type": "A",
}
]
}
Run Code Online (Sandbox Code Playgroud)
C#
[JsonProperty(PropertyName = "Job Type")]
public string JobType { get; set; }
[JsonProperty(PropertyName = "Job #")]
public string JobNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)
我有许多字段使用相似的名称,我想弄清楚,有没有办法告诉设置规则以始终删除空格(EG:)Job Type -> JobType并替换#为Number(例如Job # -> JobNumber:)?
看起来自定义ContractResolver可能是唯一的解决方案,但我似乎不知道如何使用它来删除空格并将“#”替换为“Number”。有人有参考示例吗?
或者,我希望有一个我忽略的简单的解决方案。
PS 还接受更好标题的建议。
我遇到了一个问题,我创建的ASP.NET MVC html帮助器方法每次调用时都不会被"重新生成".
辅助方法的目的是创建要在angularjs框架中使用的Javascript对象.例如,这是一个代码片段,其中使用了helper方法(从html页面的脚本标记内调用):
var app = angular.module( "appName", ["ui.bootstrap"] );
app.controller( 'appCtrl', function( $scope ) {
$scope.model = @Html.ToJavascript( Model, new string[] { "FirstName", "LastName", "ID", "Role" } );
} );
Run Code Online (Sandbox Code Playgroud)
Model是一个具有各种属性的类的实例,但我只希望将FirstName,LastName,ID和Role序列化为javascript对象.
ToJavascript()帮助器方法在statis类中定义如下:
public static HtmlString ToJavascript( this HtmlHelper helper, object toConvert, string[] includedFields = null, Formatting formatting = Formatting.Indented, ReferenceLoopHandling loopHandling = ReferenceLoopHandling.Ignore )
{
using( var stringWriter = new StringWriter() )
using( var jsonWriter = new JsonTextWriter( stringWriter ) )
{
var serializer = new JsonSerializer()
{ …Run Code Online (Sandbox Code Playgroud)