Ich untersuche JSON-Verarbeitung von JavaEE 7, und ich habe eine unten beschriebene Frage.Erstellen eines Geschäftsobjekts mithilfe der JSON-Verarbeitung von JavaEE 7
(bevor ich unter info habe zu fragen, aber immer noch eine Frage)
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) Ich habe einen Web-Service-REST, die Antwort in einem zurück JSON-Format:
{"id":1141,"email":"[email protected]","enabled":"Y"}
2) Es gibt eine entsprechende JPA Entity Benutzer namens
@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) Ich habe einen Klienten basierend auf Jersey-Client-API und Java EE JSON Verarbeitung, die diesen Web-Service aufrufen.
Maven Abhängigkeiten:
<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>
Code Auftraggeber:
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"));
Und schließlich die Frage:
Sollte ich habe Benutzer wie User = new User();
erstellen und alle Eigenschaften manuell oder existiert bequemer Möglichkeit, Benutzer zu erstellen?
Externe Id versus "local" Id (Primärschlüssel) scheint Missverständnis ... –