2013-06-27 5 views
7

Mi piace l'idea di avere uno standard per la serializzazione JSON in Java, javax.json è un grande passo in avanti si può fare un oggetto grafico come questo:Serialize Pojos a JSON utilizzando il nuovo standard di javax.json

JsonObject jsonObject3 = 
Json.createObjectBuilder() 
.add("name", "Ersin") 
.add("surname", "Çetinkaya") 
.add("age", 25) 
.add("address", 
     Json.createObjectBuilder() 
      .add("city", "Bursa") 
      .add("country", "Türkiye") 
      .add("zipCode", "33444")) 
.add("phones", 
       Json.createArrayBuilder() 
        .add("234234242") 
        .add("345345354")) 
.build();  

questo è tutto, ma come posso serializzare un POJO o un oggetto Java semplice (come una mappa) diretto a JSON ?, qualcosa come faccio in GSON:

Person person = new Person(); 
String jsonStr = new Gson().toJson(person); 

Come posso fare questo con la nuova API standard?

risposta

10

Java API per JSON Processing (JSR-353) non copre il binding degli oggetti. Questo sarà coperto in un JSR separato.

+0

Sarà che JSR essere consegnato in Java EE7? –

+0

@NestorHernandezLoli - No, non fa parte di Java EE 7 che è già rilasciato. –

+2

È un vero peccato, Bene userò Gson, Sarebbe utile rendere Gson a JSR –

0

forse è perché questa domanda è quasi 5 anni (non ho controllare quale versione di Java ha queste classi), ma c'è un modo standard con javax.json.* classi:

JsonObject json = Json.createObjectBuilder() 
     .add("key", "value") 
     .build(); 
try(JsonWriter writer = Json.createWriter(outputStream)) { 
    writer.write(json); 
}