Azure Mobile AppでJSONシリアル化をカスタマイズできないようです。Azure Mobile App jsonシリアル化をカスタマイズしています
私自身のコードの複雑さを避けるために、私は最初から新しいプロジェクトをセットアップしました。 Visual Studio Community 2015 Update 2、Azure App Service Tools v2.9(問題がある場合)新しいプロジェクト、Visual C#、Cloud、Azure Mobile App
public static void ConfigureMobileApp(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
new MobileAppConfiguration()
.UseDefaultConfiguration()
.ApplyTo(config);
// Use Entity Framework Code First to create database tables based on your DbContext
Database.SetInitializer(new MobileServiceInitializer());
MobileAppSettingsDictionary settings = config.GetMobileAppSettingsProvider().GetMobileAppSettings();
if (string.IsNullOrEmpty(settings.HostName))
{
app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions
{
// This middleware is intended to be used locally for debugging. By default, HostName will
// only have a value when running in an App Service application.
SigningKey = ConfigurationManager.AppSettings["SigningKey"],
ValidAudiences = new[] { ConfigurationManager.AppSettings["ValidAudience"] },
ValidIssuers = new[] { ConfigurationManager.AppSettings["ValidIssuer"] },
TokenHandler = config.GetAppServiceTokenHandler()
});
}
app.UseWebApi(config);
}
これは私がしようとしたものです::
はApp_Start\Startup.MobileApp.cs
では、このテンプレートには何がある
public static void ConfigureMobileApp(IAppBuilder app)
{
JsonConvert.DefaultSettings =() => new JsonSerializerSettings()
{
Converters = { new StringEnumConverter { CamelCaseText = true }, },
ContractResolver = new CamelCasePropertyNamesContractResolver { IgnoreSerializableAttribute = true },
DefaultValueHandling = DefaultValueHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore,
Formatting = Formatting.Indented
};
HttpConfiguration config = new HttpConfiguration();
config.Formatters.JsonFormatter.SerializerSettings = JsonConvert.DefaultSettings();
new MobileAppConfiguration()
.UseDefaultConfiguration()
.ApplyTo(config);
...
}
がこれを実行するとhttp://localhost:53370/tables/TodoItem
にアクセスし、JSONは字下げされません、との束を持っていますfalse
フィールドは設定が無視されていることを示します。
シリアライザの設定をこの設定で尊重するにはどうすればよいですか?すべてのコントローラから自分のカスタム設定でJsonResult
を返すことはできますが、私には200 OK
のステータスを送ることしかできません(私の設定を尊重して201 Created
を返すためにフープを飛ばしなければなりません)。
解決しましたか?モバイルアプリがシリアライザ設定を尊重していないのと同様の問題が発生しているようです。私の場合、参照ループの処理は動作していないので、500の応答が発生します。 – DevNoob