2010-06-21 10 views
5

Sto cercando di fare qualcosa di simile a quanto segue in Java e mi chiedevo se una tale libreria/helper JSON esistesse già là fuori da qualche parte?Esiste un generatore di stringhe JSON simile?

SomeJsonBuilder builder = new SomeJsonBuilder(); 
builder.add("one", "oneValue"); 
builder.add("two.three", "threeValue"); 
String output = builder.toString(); 

tale che la stringa di output sopra sarebbe qualcosa di simile:

{"one":"oneValue", "two":{"three":"threeValue"}} 
+1

duplicati di http://stackoverflow.com/questions/338586/a-better-java-json- libreria –

+3

Non sarei d'accordo ... che la domanda SO è una domanda generale sulle librerie JSON. Questo è abbastanza specifico (anche se avrei formulato come 'builder.add (" one "," oneValue "); builder.add (" two.three "," threeValue ");' –

+0

oops, sì hai ragione Jason, nella fretta di scrivere il post, ho commesso questo errore Grazie per il ritiro – digiarnie

risposta

3

Avete controllato JSONLib? Però non fa esattamente quello che stai cercando. Ma è vicino.

+0

La funzione mappa è probabilmente la più vicina. Grazie ninja! – digiarnie

2

E 'questo quello che stai cercando? http://www.json.org/java/

+0

Ho dato un'occhiata a t lui è lì, ma non credo di vedere una classe che accetta il tipo di notazione che sto cercando. Sembrano tutti voler costruire oggetti prima di toString'ing.Idealmente mi piacerebbe un'utilità che utilizzi la notazione che ho menzionato nel mio post (ho già questa utility ma ovviamente sarebbe bello se ce ne fosse una già ben testata e utilizzata) – digiarnie

+0

Coordinate di Maven: 'org .json: json'. – Abdull

0

Mi rendo conto che questa è una domanda precedente, ma ho implementato un semplice JSON String Builder in C# come parte del mio progetto Fluent Flot che potrebbe essere facilmente portato.

0

Un po 'in ritardo con questo, ma la mia libreria jsonj è stato progettato per questo caso d'uso.

https://github.com/jillesvangurp/jsonj

JsonObject o=object(
    field("aList",array(
     1, 
     2, 
     object(field("meaningoflife",42)), 
     "no more builder")) 
    ), 
    field("another", "element"), 
    field("aSet",set(1,2,3), 
    field("nestedlists",array(
     array(1,2), 
     array(3,4) 
    )) 
); 

String json=o.toString(); 

Io uso diversi metodi statici che è possibile importare in modo statico. I metodi builder sono polimorfi e usano vararg. JsonObject, JsonArray, JsonSet e JsonPrimitive si comportano in modo sano e supportano anche i generici.

Problemi correlati