Ich möchte, dass mein JSON so aussieht:
{
"information": [{
"timestamp": "xxxx",
"feature": "xxxx",
"ean": 1234,
"data": "xxxx"
}, {
"timestamp": "yyy",
"feature": "yyy",
"ean": 12345,
"data": "yyy"
}]
}
Code bisher:
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);
}
}
und
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);
}
}
Mir fehlt nur der Teil, wie ich das Java-Objekt mit Jackson in JSON konvertieren kann:
public static void main(String[] args) {
// CONVERT THE JAVA OBJECT TO JSON HERE
System.out.println(json);
}
Meine Frage ist: Sind meine Klassen korrekt? Welche Instanz muss ich aufrufen und wie kann ich diese JSON-Ausgabe erzielen?
Antworten:
So konvertieren Sie Ihre
object
in JSON mit Jackson:quelle
object
MUSS Getter für alle Felder haben, die Ihr JSON enthalten soll.Ich weiß, dass dies alt ist (und ich bin neu in Java), aber ich bin auf das gleiche Problem gestoßen. Und die Antworten waren mir nicht so klar wie einem Neuling ... also dachte ich, ich würde hinzufügen, was ich gelernt habe.
Ich habe eine Bibliothek eines Drittanbieters verwendet, um das Unternehmen zu unterstützen:
org.codehaus.jackson
Alle Downloads hierfür finden Sie hier .Für die Basis-JSON-Funktionalität müssen Sie den Bibliotheken Ihres Projekts die folgenden Jars hinzufügen: jackson-mapper-asl und jackson-core-asl
Wählen Sie die Version, die Ihr Projekt benötigt. (Normalerweise können Sie mit dem neuesten stabilen Build arbeiten).
Fügen Sie
import
Ihrem Code nach dem Import in die Bibliotheken Ihres Projekts die folgenden Zeilen hinzu:Mit dem Java-Objekt definierte und zugewiesene Werte, die Sie in JSON konvertieren und als Teil eines RESTful-Webdienstes zurückgeben möchten
Das Ergebnis sollte folgendermaßen aussehen:
{"firstName":"Sample","lastName":"User","email":"[email protected]"}
quelle
Dies könnte nützlich sein:
quelle
mach das einfach
quelle
jackson
, nichtGson
Nun, selbst die akzeptierte Antwort gibt nicht genau das aus, wonach op gefragt hat. Es gibt die JSON-Zeichenfolge aus, jedoch mit maskierten
"
Zeichen. Also, obwohl es vielleicht etwas spät ist, antworte ich in der Hoffnung, dass es den Menschen helfen wird! So mache ich das:quelle
Sie könnten dies tun:
quelle
Hinweis: Damit die am häufigsten gewählte Lösung funktioniert, müssen Attribute im POJO
public
öffentlich sein oder seingetter
/setter
:Noch nicht getestet, aber ich glaube, dass diese Regel auch für andere JSON-Bibliotheken wie Google Gson gilt.
quelle
quelle
Sie können Google Gson so verwenden
quelle