JavaEE 7からのJSON処理を調査中ですが、以下に説明する質問があります。JavaEE 7からのJSON処理を使用したビジネスオブジェクトの作成
(尋ねる前に、私は情報の下に読んで、まだ疑問を持っている)
http://docs.oracle.com/javaee/7/tutorial/jsonp004.htm
How can I cast a JSONObject to a custom Java class?
How do I convert a JSONObject to class object?
1)私は、応答を返すREST Webサービスを持っていますJSON形式:
{"id":1141,"email":"[email protected]","enabled":"Y"}
2)に対応するJPAエンティティは、私は、このWebサービスを呼び出すジャージークライアントAPIとJava EE JSONの処理に基づいてクライアントを持っている)
@Table(name = "USER")
@Entity
public class User {
@Id
@Column(name = "USER_ID")
private Long id;
@Column(name = "EMAIL")
private String email;
@Column(name = "ENABLED")
private String enabled;
3ユーザー
と呼ばれるがあります。Mavenの依存関係:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.22.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
クライアントコード:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:7001/projectname/rest");
WebTarget resourceWebTarget = target.path("users").queryParam("email", "[email protected]");
Invocation.Builder invocationBuilder = resourceWebTarget.request(MediaType.APPLICATION_JSON);
Response response = invocationBuilder.get();
JsonReader reader = Json.createReader(response.readEntity(InputStream.class));
JsonObject jObject = reader.readObject();
User user = new User();
user.setId(jObject.getJsonNumber("id").longValue());
user.setEmail(jObject.getString("email"));
user.setEnabled(jObject.getString("enabled"));
そして最後の質問:
iはUser = new User();
のようにユーザーを作成し、手動ですべてのプロパティを設定しているか、より便利に存在するべきですユーザーを作成する方法は?
外部IDを...答えを –