Quiero que mi JSON se vea así:
{
"information": [{
"timestamp": "xxxx",
"feature": "xxxx",
"ean": 1234,
"data": "xxxx"
}, {
"timestamp": "yyy",
"feature": "yyy",
"ean": 12345,
"data": "yyy"
}]
}
Código hasta ahora:
import java.util.List;
public class ValueData {
private List<ValueItems> information;
public ValueData(){
}
public List<ValueItems> getInformation() {
return information;
}
public void setInformation(List<ValueItems> information) {
this.information = information;
}
@Override
public String toString() {
return String.format("{information:%s}", information);
}
}
y
public class ValueItems {
private String timestamp;
private String feature;
private int ean;
private String data;
public ValueItems(){
}
public ValueItems(String timestamp, String feature, int ean, String data){
this.timestamp = timestamp;
this.feature = feature;
this.ean = ean;
this.data = data;
}
public String getTimestamp() {
return timestamp;
}
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
public String getFeature() {
return feature;
}
public void setFeature(String feature) {
this.feature = feature;
}
public int getEan() {
return ean;
}
public void setEan(int ean) {
this.ean = ean;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
@Override
public String toString() {
return String.format("{timestamp:%s,feature:%s,ean:%s,data:%s}", timestamp, feature, ean, data);
}
}
Solo me falta la parte de cómo puedo convertir el objeto Java a JSON con Jackson:
public static void main(String[] args) {
// CONVERT THE JAVA OBJECT TO JSON HERE
System.out.println(json);
}
Mi pregunta es: ¿son correctas mis clases? ¿A qué instancia debo llamar y cómo puedo lograr esta salida JSON?
Respuestas:
Para convertir tu
object
en JSON con Jackson:fuente
object
DEBE tener captadores para todos los campos, que desea que incluya su JSON.Sé que esto es antiguo (y soy nuevo en Java), pero me encontré con el mismo problema. Y las respuestas no fueron tan claras para mí como un novato ... así que pensé en agregar lo que aprendí.
Utilicé una biblioteca de terceros para ayudar en el esfuerzo:
org.codehaus.jackson
todas las descargas para esto se pueden encontrar aquí .Para la funcionalidad JSON básica, debe agregar los siguientes archivos jar a las bibliotecas de su proyecto: jackson-mapper-asl y jackson-core-asl
Elija la versión que necesita su proyecto. (Por lo general, puede ir con la última versión estable).
Una vez que se importen a las bibliotecas de su proyecto, agregue las siguientes
import
líneas a su código:Con el objeto Java definido y los valores asignados que desea convertir a JSON y devolver como parte de un servicio web RESTful
El resultado debería verse así:
{"firstName":"Sample","lastName":"User","email":"[email protected]"}
fuente
Esto puede ser útil:
fuente
solo haz esto
fuente
jackson
, noGson
Bueno, incluso la respuesta aceptada no genera exactamente lo que op ha pedido. Produce la cadena JSON pero con
"
caracteres escapados. Entonces, aunque podría ser un poco tarde, ¡estoy respondiendo con la esperanza de que ayude a las personas! Así es como lo hago:fuente
Podrías hacer esto:
fuente
Nota: Para que la solución más votada funcione, los atributos en el POJO deben ser
public
o tener un públicogetter
/setter
:Todavía no se ha probado, pero creo que esta regla también se aplica a otras bibliotecas JSON como Google Gson.
fuente
fuente
Puedes usar Google Gson así
fuente