0

アノテーションに基づいて JSON オブジェクトを作成することで保持するこのクラスがあります。

@Entity(name = "user")
public class User { 
    @Id 
    private String id;
    @Column
    private String name;
    @Column
    private Integer age;
    public User() {}
public User(String id, String name, String age) {}
// ... code omitted
}

boolean ok = createEntity(new User("uid1", "eli", 25));

上記のメソッドは、User オブジェクトを次のような JSON オブジェクトを表す Map に変換します。

map.put("ID", "uid1");
map.put("name", "eli");
map.put("age", 25);

これはうまくいきます。ただし、上記と同様の形式の値を含む応答マップに基づいて User オブジェクトを作成する必要があります。まず、JSON 文字列の形式でサーバーから応答を取得します。

{
    "id" : "uid2",
    "name" : "ben",
    "age" : 20
}

つまり、この JSON 文字列をマップに解析すると、次のようになります。

map.put("id", "uid2");
map.put("name", "ben");
map.put("age", 20);

マップから正しい@Columnフィールドに値を入力するユーザー オブジェクトを作成するにはどうすればよいですか?

アップデート:

Jackson ライブラリについては知っていますが、ここでの考え方は、クラスに注釈を付ける必要があるライブラリを構築しているため、注釈を使用する必要があるということです。json/map からオブジェクトを作成し、適切な値を適切なフィールドに割り当てる方法の直後です

4

1 に答える 1

0

Jacksonライブラリを使用します。オブジェクトに注釈を付ける必要なく、オブジェクトを json に変換します。

于 2012-11-15T07:18:13.257 に答える