0

Spring MVC 3 を使用しており、JSON 文字列をエンティティにマップする必要があります。Json 文字列には、ネストされたエンティティのキ​​ー参照のみが含まれます。

次のような JSON 文字列を受け取ります。

{"entities":
    [{
    "entityName":"User",
    "values":
    [
    {"name":"Mario","lastname":"Rossi","id_type":"1"},
    {"name":"Giuseppe","lastname":"Verdi","id_type":"1"}
    ]
    }]
}

そして私は2つのJavaエンティティを持っています:

User{
   String name,
   String lastname,
   UserType userType
}

UserType {
   int id,
   String description
}

JSON 情報を使用して User エンティティを作成したいと考えています。ユーザー クラスには「id_type」パラメーターがないため、ObjectMapper は JSON 文字列をユーザー エンティティに配置できません。

さまざまな種類のエンティティを受け取ることができるので、次のようにリフレクションを使用します。

//READ JSON
GenericEntity entities[]=request.getEntities();
String entityName = entities[0].getEntityName();
Object rows[] = entities[0].getValues();
//MAP
Class clazz  = Class.forName(entityName);
ObjectMapper mapper = new ObjectMapper();
dbEntity = mapper.convertValue(rows[0], clazz);
//SAVE TO DB
service.save(dbEntity);

CustomObjectMapper を使用する必要があると思いますが、方法がわかりません

逆の問題もあります: User クラスの「user」を取得し、「id_type」で JSON 文字列を作成する必要があります

誰かが私を助けることができますか?前もって感謝します

4

1 に答える 1