Quero que meu JSON fique assim:
{
"information": [{
"timestamp": "xxxx",
"feature": "xxxx",
"ean": 1234,
"data": "xxxx"
}, {
"timestamp": "yyy",
"feature": "yyy",
"ean": 12345,
"data": "yyy"
}]
}
Código até agora:
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);
}
}
e
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);
}
}
Só faltava a parte de como converter o objeto Java em JSON com Jackson:
public static void main(String[] args) {
// CONVERT THE JAVA OBJECT TO JSON HERE
System.out.println(json);
}
Minha pergunta é: Minhas aulas estão corretas? Qual instância devo chamar e como posso obter essa saída JSON?
Respostas:
Para converter seu
object
em JSON com Jackson:fonte
object
DEVE ter getters para todos os campos, que você deseja que seu JSON inclua.Eu sei que isso é antigo (e eu sou novo no java), mas me deparei com o mesmo problema. E as respostas não eram tão claras para mim quanto um novato ... então pensei em acrescentar o que aprendi.
Eu usei uma biblioteca de terceiros para ajudar no empreendimento:
org.codehaus.jackson
todos os downloads para isso podem ser encontrados aqui .Para a funcionalidade JSON básica, você precisa adicionar os seguintes jars às bibliotecas do seu projeto: jackson-mapper-asl e jackson-core-asl
Escolha a versão que seu projeto precisa. (Normalmente, você pode usar a versão estável mais recente).
Depois de importados para as bibliotecas do seu projeto, adicione as seguintes
import
linhas ao seu código:Com o objeto java definido e valores atribuídos que você deseja converter para JSON e retornar como parte de um serviço da web RESTful
O resultado deve ficar assim:
{"firstName":"Sample","lastName":"User","email":"[email protected]"}
fonte
Isso pode ser útil:
fonte
apenas faça isso
fonte
jackson
, nãoGson
Bem, mesmo a resposta aceita não gera exatamente o que o op pediu. Ele gera a sequência JSON, mas com
"
caracteres escapados. Portanto, embora possa ser um pouco tarde, estou respondendo, esperando que isso ajude as pessoas! Aqui está como eu faço isso:fonte
Você poderia fazer isso:
fonte
Nota: Para que a solução mais votada funcione, os atributos no POJO devem ser
public
ou ter um públicogetter
/setter
:Ainda não testado, mas acredito que esta regra também se aplica a outras bibliotecas JSON como o google Gson.
fonte
fonte
Você pode usar o Google Gson assim
fonte