Chcę, aby mój JSON wyglądał tak:
{
"information": [{
"timestamp": "xxxx",
"feature": "xxxx",
"ean": 1234,
"data": "xxxx"
}, {
"timestamp": "yyy",
"feature": "yyy",
"ean": 12345,
"data": "yyy"
}]
}
Dotychczasowy kod:
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);
}
}
i
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);
}
}
Brakuje mi tylko części, w której mogę przekonwertować obiekt Java na JSON z Jacksonem:
public static void main(String[] args) {
// CONVERT THE JAVA OBJECT TO JSON HERE
System.out.println(json);
}
Moje pytanie brzmi: czy moje zajęcia są prawidłowe? Którą instancję mam wywołać i jak mogę uzyskać dane wyjściowe JSON?
Odpowiedzi:
Aby przekonwertować
object
w JSON z Jacksonem:źródło
object
MUSI mieć metody pobierające dla wszystkich pól, które chcesz, aby zawierał JSON.Wiem, że to jest stare (i jestem nowy w Javie), ale napotkałem ten sam problem. A odpowiedzi nie były dla mnie tak jasne jak nowicjusz ... więc pomyślałem, że dodam to, czego się nauczyłem.
Użyłem biblioteki innej firmy, aby pomóc w przedsięwzięciu:
org.codehaus.jackson
wszystkie pliki do pobrania do tego można znaleźć tutaj .Aby uzyskać podstawową funkcjonalność JSON, musisz dodać następujące pliki JAR do bibliotek projektu: jackson-mapper-asl i jackson-core-asl
Wybierz wersję, której potrzebuje Twój projekt. (Zwykle możesz skorzystać z najnowszej stabilnej wersji).
Po zaimportowaniu ich do bibliotek projektu dodaj
import
do kodu następujące wiersze:Ze zdefiniowanym obiektem Java i przypisanymi wartościami, które chcesz przekonwertować do formatu JSON i zwrócić jako część usługi internetowej zgodnej z REST
Wynik powinien wyglądać następująco:
{"firstName":"Sample","lastName":"User","email":"[email protected]"}
źródło
Może to być przydatne:
źródło
po prostu zrób to
źródło
jackson
, a nieGson
Cóż, nawet zaakceptowana odpowiedź nie daje dokładnie tego, o co prosił op. Wyprowadza ciąg JSON, ale ze
"
znakami ucieczki. Tak więc, chociaż może być trochę za późno, odpowiadam, mając nadzieję, że pomoże to ludziom! Oto jak to robię:źródło
Możesz to zrobić:
źródło
Uwaga: aby rozwiązanie z największą liczbą głosów działało, atrybuty w POJO muszą być
public
publicznegetter
/setter
:Jeszcze nie testowane, ale uważam, że ta reguła dotyczy również innych bibliotek JSON, takich jak Google Gson.
źródło
źródło
Możesz używać Google Gson w ten sposób
źródło