我正在調查JavaEE 7的JSON處理,並且我有一個如下所述的問題。使用來自JavaEE的JSON處理創建業務對象7
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實體,稱爲用戶
@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)我有一個客戶端基於Jersey客戶端API和Java EE JSON處理該調用這個Web服務。
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"));
最後一個問題:
我應該有一個像User = new User();
創建用戶和手動設置所有的屬性,或存在更方便創建用戶的方式?
外部標識與「本地」 ID(主鍵),似乎誤解...... –