bugfix> spring > 投稿

クラスがあります

Entity implements org.joda.beans.Bean {
    String name;
    double weight;
    ....
}

私はこのようなエンドポイントを持っています:

@RequestMapping(value = "CREATE", method = POST)
public void createEntity(@RequestBody Entity entity) {
    logic.createEntity(entity);
}

フロントエンドは、Json文字列をこのエンドポイントに送信します。

{"name": "Bob", "weight":"99.7"}

ここで、エンティティを更新する別のエンドポイントが必要です。 属性の一部のみが設定されているJSON文字列を受け入れます。

{"weight":"99.8"}

その署名は次のようになります。

@RequestMapping(value = "UPDATE", method = POST)
public void updateCompany(@RequestBody Map<String, String> update1) {
    Map<String, Object> update2 = deserialize(Entity.class,update1);
    logic.updateEntity(update2);
}

問題は、メソッド deserialize を実装する方法ですストリングのペア["weight"、 "99.8"]を取得し、それをストリングString-Objectのペアに変換します:["weight"、Double.valueOf( "99.8")]クラス Entity で宣言されています 。このような変換は、メソッド createEntity() の引数の準備中に既に行われました 、今は別のメソッド呼び出しとして抽出したい。