Série da semana: Primeiros passos no Angular

Veja mais

Dúvida - Como mapear array dentro do json no java hibernate

10/01/2019

6

Olá,

estou desenvolvendo uma API restful em JAVA e estou com seguinte problema.

Após minha requisição POST, não consigo mapear o array que está dentro do meu objeto JSON.

O valor que aparece na minha classe DAO no Java é sempre NULO.

Os dados contidos nesse array não serão salvos no banco.

Serão feitas algumas verificações apenas, mas para isso preciso mapea-lo na minha DAO.

Abaixo está o json, ar_days sempre aparece nulo após requisição web.

Os outros valores chegam todos corretos e sem problemas.

{
"id_urgency":"1",
"id_carrier":"1",
"id_patient":"10325",
"dt_open":"2019-01-20",
"hr_open":"10:22:00",
"ds_hospital_dst":"teste",
"ds_sector_dst" : "teste2",
"ds_room_dst" : "3565B",
"ar_days":["2","4","6"]

}
Como mapeio esse json na minha api?
Responder

Post mais votado

11/01/2019

E ae Hugo blz,

Cara eu tenho algumas APIs criadas com algumas tecnologias, dessas a mais simples de implementar eu acho que foi usando o Jersey , a API REST roda liso e já fiz integrações com vários sistemas diferentes de clientes.

Uma das grandes vantagens que ache é o mapeamento automático , dessa forma basta ter um objeto espelhado na requisição que o mesmo já vem preenchido pronto para trabalhar, segue um exemplo de como configurar esse cara , mas existe muito material legal na net sobre esse cara "mas da para fazer isso em Spring e outros frameWork Rest tbm destaco o Jersey pela simplicidade de montar a estrutura XD":

POM :

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>br.com.suaAPI</groupId>
	<artifactId>suaAPI</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.3</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.6</version>
				<configuration>
					<warSourceDirectory>WebContent</warSourceDirectory>
					<failOnMissingWebXml>false</failOnMissingWebXml>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<properties>
		<jersey2.version>2.19</jersey2.version>
		<jaxrs.version>2.0.1</jaxrs.version>
	</properties>
	<dependencies>
		<!-- JAX-RS -->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>${jaxrs.version}</version>
		</dependency>
		<!-- Jersey 2.19 -->
		<dependency>
			<groupId>org.glassfish.jersey.containers</groupId>
			<artifactId>jersey-container-servlet</artifactId>
			<version>${jersey2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-server</artifactId>
			<version>${jersey2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
			<version>${jersey2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-json-jackson</artifactId>
			<version>2.25</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<!-- <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> 
			<version>5.1.0.Final</version> </dependency> -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.10</version>
		</dependency>

		<dependency>
			<groupId>com.ibm.informix</groupId>
			<artifactId>jdbc</artifactId>
			<version>4.10.10</version>
		</dependency>

	</dependencies>

</project>


WEB :

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

<display-name>suaApi</display-name>

<servlet>
<servlet-name>suaApi</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>br.com.ws.suaApi</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<session-config>
<session-timeout>20</session-timeout>
</session-config>

<servlet-mapping>
<servlet-name>suaAPI</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>




Não sei o que uso para montar seu Rest, mas caso queira dar uma olhada no Jersey vale muito XD... boa sorte..
Responder