問題タブ [object-object-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - オブジェクトからオブジェクトへのマッピングと単体テスト / TDD
すべてのコード ベースで TDD の原則に従おうとしています。フロントエンド (MVC) とバックエンド部分は分割され、フロントエンドは独自のモデル オブジェクトを使用しますが、バックエンドはデータベース オブジェクトを使用し、ドキュメント データベース (RavenDb) に保存されます。
CustomerModel
これには、 sayから への多くの変換が必要CustomerData
です。これらは互いに独立して作成されるため、構造が一致しない場合があります。たとえば、ネストされた object がある場合、 はCustomerModel
フラットである可能性があります。CustomerData
ContactDetails
ConvertCustomerModelToCustomerData
現在、 sayとの 2 つのメソッドを実装していConvertCustomerDataToCustomerModel
ます。これらは非常に似ていますが、互いに逆です。これとは別に、これらのメソッドも単体テストされています。したがって、同様のコードが 4 つのインスタンス (変換ごとに 2 回、単体テストごとに 2 回) で作成されます。
これは維持するのに大きな頭痛の種であり、私には正しくないように思えます。を使用してAutoMapper
みましたが、かなり固いことがわかりました。また、これを単体テストする方法が見つかりませんでした。
どんなアイデアでも大歓迎です。
java - ModelMapper: 実行時の抽象クラスのマッピング
Java でオブジェクトをマッピングするためにModelMapper Framework ( http://modelmapper.org/ ) を使用しています。抽象クラスを含む具象クラス (DTO からエンティティ) をマッピングしているときに問題が発生しました。
例: タスクには AbstractItems のリストがあります。
AbstractItems は質問と基準です。
マッピング方法:
ModelMapper は、例外をスローする AbstractItem の新しいインスタンスを作成しようとします。実行時に抽象クラスをマップする方法はありますか?
QuestionDTO -> Question、CriteriaDTO -> Criteria のように
android - 環境設定でテクスチャを保存する
つまり、私が達成しようとしているのは、ユーザーが新しいアイテム (テクスチャ) を購入すると、ボタンをクリックして古いアイテム (テクスチャ) を新しいアイテムに置き換えることができるということです。最初に頭に浮かんだのは Objectmaps でした。だから私はこれを作成しました:
コツをつかむために、現時点では2つのアイテムのみを使用しています。
テクスチャを変更するために使用する方法は次のとおりです。
そして今、私が理解できる部分に:
ご覧のとおり、そこに何の整数を入れるかわかりません。今でも省略しています。screenId 整数を試してみましたが、ボイドにあるため到達できませんか? PS 私が物事に付けた変な名前は気にしないでください。古いプロジェクトからいくつかのコードを取得しました。
json - Object Mapper を使用する場合、groovy では出力の形式が異なります。なんで?
どこにでも「\」が表示されるのはなぜですか?
私が使用する方法:
私が得る出力:
「\」を削除するにはどうすればよいですか。
swift - ObjectMapper を使用してトランスフォーマーから子 RLMObjects を取得する
プロジェクトでObjectMapper ( https://github.com/Hearst-DD/ObjectMapper ) と Realm の両方を使用しています。私のオブジェクトはすべて RLMObjects です。
たとえば、添付ファイルを含むブログ オブジェクトがあります。
次のように始まるカスタム トランスフォーマーがあります。
それらを RLMArray に変換する方法を理解できないようです。トランスフォーマーでは常に nil になります。
コードに頭を悩ませるのは難しいと思います。また、xcode のデバッガーにはあまり助けがありません。
TL;DR トランスフォーマーが nil を受け取るか、値を RLMArray に変換する方法が間違っていると予想しています。
更新: 私が何に苦労しているかが少し明確になっていることを願っています. とにかく、デバッグのためにこれを含むようにトランスフォーマーを変更しました:
さらに紛らわしいのは、最初の Debug.log (単に NSLog を作成するだけ) です。以下を出力します。
これらのログ行が返される原因を見る限り、これはjsonでも、配列でも、辞書でもありません。
val はこの nil です。配列の場合、val はこの Optional([]) です。
更新 タプルのように見えたので、今はこれがあります:
これにより、さまざまな添付ファイルを反復処理できますが、内部オブジェクトが何であるかを調べる必要があります。
更新 "AnyObject" でタプル配列を取得した後、値は __NSCFDictionary だったようです。これは、objectForKey を使用して値を取得できました
c# - ValueInjecter を使用して文字列配列をオブジェクトにマッピングする
ValueInjecter を使用して次の問題を解決する方法についての提案を探しています。
注:誰かが飛び込んで、a) やり方が間違っていると言ったり、b) ValueInjecter を使うべきではないと言ったりする前に、使用しないでください。a )ソースデータを制御できないため、b)プロジェクトの他のすべての場所でValueInjecterが使用されているため、他のすべてのデータモーフィングタスクのため、別のツールキットを使用することは実際にはオプションではありません)
問題
一連のサード パーティ サービス クラスから、キー付き文字列配列としてフォーマットされたインバウンド データを受け取ります。つまり、受信オブジェクトは次のようになります。
(注:これは実際のデータではなく、私が扱っているもののモックアップです)
ここでの主な前提は、受信データのフィールドを取得するには、フィールド名または配列インデックスを指定する必要があるということです。データを提供するライブラリは、勝ったサードパーティによって提供されているため、これを変更することはできません変更しないでください。私たちのライセンスでは変更が許可されていません。
各インバウンド データ パケットには 1 つのレコードのフィールドしか含まれていないため、複数の行を処理する必要がある場合、実際には配列の配列になりますが、これを変換することについてはまだ心配していません。最初にシングルレコード。
したがって、私がする必要があるのは、次のことです。
それを次のように変換します。
可能であれば、フィールド名が変更された場合に配列キー["blah"]がオブジェクト プロパティblahに自動的にマップされるように、ValueInjecter を使用してこれを実行できるようにしたいと考えています。
現在のソリューション
現時点では、データは変換されますが、次の昔ながらの方法を使用します。
これは問題なく機能しますが、将来的には問題が発生する可能性があり、以前にこれを実行したことがある人なら誰でも、これが起こるのを待っているメンテナンスの悪夢であることを知っているでしょう.
したがって、次のようなことができるようにしたいと思います。
そのため、サードパーティがレコードにフィールドを追加した場合、私がしなければならないことは、その名前のフィールドをオブジェクトに追加することだけです。
今、試してみたい実験がいくつかありますが、1 日か 2 日分の調査の後、具体的なものは何も見つかりませんでした。Auto- Mapper ですが、私は Auto-Mapper を使用していないので、せいぜいそれらから得られるのはいくつかのアイデアだけです (それが私の実験の元です)。
では、これに取り組む方法についてアイデア/考えを持っている人はいますか?
乾杯ショーティ
2015 年 7 月 5 日更新
約 24 時間後、ValueInjecter の作成者である「Omu」が私の問題を一気に解決してくれました (ありがとうございます)。 .
昨夜さまざまなことを読んだ後、匿名/動的オブジェクトから具象クラスへのプロパティからプロパティへの注入を実行できるようにするために、文字列配列から動的オブジェクトを埋めることを試みることにしました。
このアプローチは、「動的オブジェクトで拡張メソッドを実行できない」という 1 つの問題を除いて、実際には機能していました。ただし、パズルの最後のピースを理解できる人もいるかもしれません。そのため、ここに私の実験的なコードを示します。どこで私の考えを参照してください:
私はOmuの投稿を答えとしてマークしています.
java - Jackson ObjectMapper を使用して Json の一部を HashMap に変換する
Json のいくつかのプロパティが、モデル クラスに存在する HashMap にマップされるように、JSON ファイルを非整列化しようとしています。残りのプロパティは、クラスのそれぞれのフィールドにマップされます。以下の Json を見つけてください。
そして、これが私がこの Json をマップしたい Model クラスです:
だからここで、私が欲しいのは、columns
キーを含むマップを取得することです"MEMO_TEXT","MEMO_LINK","MEMO_DOB","MEMO_USERNAME","MEMO_CATEGORY","MEMO_UID"
Json の残りのプロパティは、それぞれのフィールドにマップされます。
Jackson Library の ObjectMapper を使用してこれを行うことは可能ですか?