2017-06-08 21 views
1

現在AngularJSからAngularへの大量アップグレードが行われています。 問題を解決するために、最良の解決策が見つからないという問題が発生しました。Angular/TypescriptからSnakeケースからCamelケースへの変換

Angular/Typescriptコードの標準によれば、camelCaseを使用して、すべての変数、プロパティ名、およびインターフェイスを定義する必要があります。

問題は、バックエンドから来るすべてのデータがsnake_caseで使用されることです。

各リクエストの後、対応するインターフェイスを作成するには、キーをcamelCaseに変換してから、データを渡すときにsnake_case backする必要があります。

私たちはそうするためにロダッシュを使用していますが、これを行うより良い方法はありますか? Typescriptネイティブ実装を使用してこれらのものを変換する方法はありますか?

+1

は、サーバーからのインターフェイスを定義するだけです。 – toskv

+0

シリアライザをバックエンドで使用するコントロールはありますか?たぶんそれは設定することができます(.NET Web APIを使用してC#オブジェクトをJSONにシリアル化する方法を制御するときにこれを行います)。 –

答えて

1

このような機能を組み込む機能はありません。

あなたはそれを自分で行うことも、すでに行ったようにライブラリを使用することもできます。

-1

これが役立つかどうかわかりません。 C#で

モデル...

public class WeatherForecast 
     { 
      public string DATE_FORMATTED { get; set; } 
      public int TEMPERATURE_C { get; set; } 
      public string SUMMARY { get; set; } 

      public int TEMPERATURE_F 
      { 
       get 
       { 
        return 32 + (int)(this.TEMPERATURE_C/0.5556); 
       } 
      } 
     } 

...マップ:私は私が働いているレガシーデータベース内のフィールドのための命名規則をエミュレートし、次の(例で示す)が発見、いくつかの実験をしましたインターフェイスへの接尾辞:

interface WeatherForecast { 
     datE_FORMATTED: string; 
     temperaturE_C: number; 
     temperaturE_F: number; 
     summary: string; 
    } 

この狂った見方をすると、データはうまくいきます。

注:PATCH/POSTはまだテストされていませんが、 が参考になると思われます。

関連する問題