Per installare un'estensione esterna nel browser Google Chrome, provo ad aggiornare il file json dell'estensione esterna di Chrome. Utilizzando Json.NET
Sembra essere facile:Come posso leggere JSON con commento con Json.NET
string fileName = "..."; // path to chrome external extension json file
string externalExtensionsJson = File.ReadAllText(fileName);
JObject externalExtensions = JObject.Parse(externalExtensionsJson);
ma ottengo un Newtonsoft.Json.JsonReaderException
dicendo:
"Error parsing comment. Expected: *, got /. Path '', line 1, position 1."
al momento della chiamata JObject.Parse
perché questo file contiene:
// This json file will contain a list of extensions that will be included
// in the installer.
{
}
e commenti non fanno parte di JSON (come visto in How do I add comments to Json.NET output?).
So che posso rimuovere i commenti con un Regex (Regex to remove javascript double slash (//) style comments) ma ho bisogno di riscrivere JSON in file dopo la modifica e mantenere un commento può essere un buon pensiero.
Domanda: C'è un modo per leggere JSON con commenti senza rimuoverli ed essere in grado di riscriverli?
Grazie, ma non ho scelta: Google Chrome fornisce un file denominato "external_extensions.json" contenente commenti a riga singola e devo completarlo. Più in generale, Json viene spesso utilizzato come file di configurazione in cui i commenti (singole e/o linee multiple) possono essere aggiunti dagli utenti. Non abbiamo scelta: possiamo essere di fronte alla necessità di leggere ogni commento (e idealmente riscriverlo). E mi piaceva essere in grado di usare Json.Net per farlo. Pensi che possa essere una possibile evoluzione? – MuiBienCarlota
perché oh perché supporta solo i commenti Javascript multilinea – tofutim
La sostituzione con regex non è stata una soluzione completamente soddisfacente. Considerarlo in Json.Net era quello che speravo. Grazie! – MuiBienCarlota