私のシナリオでは、jsonを具体的な型にマッピングしたいと思います。また、automapperバージョン6を.netコアで使用する方法もあります。Automapper:オブジェクトをJSONに変換する
この回答に基づき、https://stackoverflow.com/a/38108128/6602770私はJSONを目的のタイプにマップすることができました。しかし、私はそれをJSON形式に戻すことはできないようです。
マッピングプロファイル:
CreateMap<JToken, SomeDto>()
.ForMember(dest => dest.ObjectId, cfg => { cfg.MapFrom(jo => jo["objectId"]); })
.ReverseMap()
.ForAllOtherMembers(x => x.Ignore());
とマッピング:
var json = _mapper.Map<JToken>(someDto);
そこにはエラーはありませんが、それはnullを返し
私のコードは次のようになります。 JTokenの代わりにJObjectを使用してプロファイルを設定しようとしましたが、同じ結果が得られました。
私はまた、別々のマッピングプロファイルを作成しようとした代わりに「ReverseMap」
public class SomeDtoProfile : Profile
{
public SomeDtoProfile()
{
CreateMap<SomeDto, JObject>()
.ForMember(dest=> dest["objectId"], cfg => { cfg.MapFrom(src => src.ObjectId); })
.ForAllOtherMembers(x => x.Ignore());
}
}
を使用するが、これは誤差スロー:「会員のためのカスタム設定のみで、トップレベルの個々のメンバーのためにサポートされていますタイプjson "
私は本当に解決策がAutoMapperを使用したいと思います、それはすべて可能ですか、何か基本的なものがありませんか?
なぜオートマッパを使うのですか?あなたのJSONを 'SomeDto'に直接変換してみませんか?シリアライズ/デシリアライズが複雑になる場合は、カスタムコンバータを使用できます。 –
[Json.NET](https://www.nuget.org/packages/newtonsoft.json)をシリアル化またはデシリアライズしないのはなぜですか? – Behzad
私は既に第1の方法(JSONからSomeDtoへ)のためにautomapperを使用していますが、多くのプロパティとカスタムリゾルバが関係しています。私は、同じ考え方を使って、他の方法でマッピングロジックを維持したいと思います。それはできますか? – Egor