Salve a tutti, oggi ho un quesito apparentemente semplice ma non riesco a fare niente.
Ho un file di testo in C:\testo.json e devo togliere tutti i simboli "-" (il meno per capirci), potete darmi una mano?
Salve a tutti, oggi ho un quesito apparentemente semplice ma non riesco a fare niente.
Ho un file di testo in C:\testo.json e devo togliere tutti i simboli "-" (il meno per capirci), potete darmi una mano?
Scusa la domanda ma siccome è un json ... perché vuoi farlo?Originariamente inviato da Maxton
Salve a tutti, oggi ho un quesito apparentemente semplice ma non riesco a fare niente.
Ho un file di testo in C:\testo.json e devo togliere tutti i simboli "-" (il meno per capirci), potete darmi una mano?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
perchè certi nomi di oggetti contengono questo carattere e con le librerie gson ho dei problemi a leggere il file, ma tanto non mi cambia il contenuto
Se le proprietà nel json hanno nomi che sono illegali in Java ... allora devi usare la annotazione @SerializedName di Gson.Originariamente inviato da Maxton
perchè certi nomi di oggetti contengono questo carattere e con le librerie gson ho dei problemi a leggere il file, ma tanto non mi cambia il contenuto
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
cioè? scusa ma non sono molto esperto e le annotazioni non le conosco
Originariamente inviato da Maxton
cioè? scusa ma non sono molto esperto e le annotazioni non le conoscoIn Java un-numero non è un identificatore valido, quindi non può essere usato come nome di campo, variabile, ecc...codice:{ "un-numero": 123, "una-stringa": "Hello" }
Ma con Gson puoi annotare i campi della classe che modella quell'oggetto json in modo da far combaciare il nome:
codice:import com.google.gson.annotations.SerializedName; public class Dati { @SerializedName("un-numero") private int unNumero; @SerializedName("una-stringa") private String unaStringa; // metodi getUnNumero, setUnNumero, ecc... }E funziona benissimo.codice:Dati dati = gson.fromJson(tuoReader, Dati.class);
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
però devo sapere a priori il nome dell'oggetto?
che vuol dire?Originariamente inviato da Maxton
però devo sapere a priori il nome dell'oggetto?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
che nell'annotazione devo sapere già come si chiama l'oggetto
Se vuoi fare il "mapping" con classi Java ... certo, devi sapere il nome delle proprietà e la struttura generale del json.Originariamente inviato da Maxton
che nell'annotazione devo sapere già come si chiama l'oggetto
Altrimenti devi fare un mapping parziale o addirittura nessun mapping con classi Java. Se ti ricordi, nell'altra tua discussione (quella del "match" con i 000, ecc...) ti avevo mostrato un mapping "parziale": avevo descritto una classe Dati che corrisponde al object globale del json e poi invece l'oggetto associato a "match" veniva catturato come Map in generale.
Il caso estremo è se non sai proprio nulla sul json e in tal caso puoi fare:
Object obj = gson.fromJson(tuoReader, Object.class);
e tocca poi a te scoprire se quel obj è un Map o un List e cosa contiene, ecc...
Io non so cosa devi fare di preciso e con quali json devi lavorare ... devi saperlo tu. Devi valutare tu se/quanto mapping con le classi puoi fare o meno. Tutto qui.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet