Sto lavorando con il driver MongoDB C#. Ho un BsonDocument
con alcuni dati che include alcuni tipi specifici di MongoDB (come ObjectID e ISODates). Voglio convertirlo in una stringa JSON generica valida. In altre parole, non posso avere qualcosa come _id: ObjectId(...)
o date: ISODate(...)
ma preferirei _id: "..."
e date: "..."
. Fondamentalmente, voglio convertire questi tipi speciali che solo MongoDB riconosce alle stringhe regolari in modo che possano essere analizzati più facilmente. Il problema è che una funzione built-in come .ToJson()
(che suggerisce un'altra risposta StackOverflow) in realtà non converte il documento in JSON valido perché mantiene questi tipi speciali. Il mio documento contiene anche molti livelli di array e sotto-documenti, quindi un semplice ciclo for non è sufficiente. Qual è il modo migliore per convertire un BsonDocument
che eviti questo problema? Preferirei qualcosa di built-in piuttosto che ricorrere manualmente nel documento per risolvere tutti i problemi.Converti MongoDB BsonDocument in JSON valido in C#
5
A
risposta
0
La maggior parte del tempo per questo che uso, Json.NET
JsonConvert.SerializeObject(obj);
maggior parte del tempo che fa il trucco. In caso di necessità è possibile impostare alcune JsonSerializerSettings
8
ho incontrato la stessa cosa, è possibile ottenere validi JSON tramite:
var jsonWriterSettings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
JObject json = JObject.Parse(postBsonDoc.ToJson<MongoDB.Bson.BsonDocument>(jsonWriterSettings));
Tuttavia tornerà qualcosa come:
{"_id":{"$oid":"559843798f9e1d0fe895c831"}, "DatePosted":{"$date":1436107641138}}
Sto ancora cercando di trovare un modo per appiattirlo.
1
Ecco come l'ho fatto, per saltare l'ingresso di mongodb _id.
var collection = _database.GetCollection<BsonDocument>("test");
var result = await collection.Find(new BsonDocument())
.Project(Builders<BsonDocument>.Projection.Exclude("_id"))
.ToListAsync();
var obj = result.ToJson();
Problemi correlati
- 1. Converti BSON in JSON valido
- 2. Converti C# DateTime nel formato MongoDB
- 3. Converti JSON in oggetto classe in C#
- 4. Converti json in un array C#?
- 5. Converti oggetto di stringa JSON in C#
- 6. Converti oggetto C# in oggetto Json
- 7. Converti array in JSON
- 8. Converti array in JSON
- 9. Converti JSON in NSArray
- 10. Converti SQLite in JSON
- 11. Converti JSON in .plist
- 12. Converti JSON in CSV
- 13. Converti JSON String a JSON oggetto C#
- 14. JSON valido in risposta
- 15. Converti stringa JSON nell'oggetto C#
- 16. Converti una stringa in JSON in Python?
- 17. Convert invalid json in json valido
- 18. Converti oggetto in stringa JSON
- 19. Converti dati Lua in JSON
- 20. Converti pacchetto JSON in Android
- 21. Converti stringa in oggetto JSON
- 22. Converti mappa in JSON utilizzando Jackson
- 23. Aggiornamento campo in serie MongoDB C# conducente
- 24. Inserisci JSON Array in mongodb
- 25. Rails: Archivia JSON in MongoDB
- 26. Java - Converti stringa in oggetto URI valido
- 27. Regex - Converti HTML in tag XML valido
- 28. Converti .json in .csv in ruby
- 29. Errore stringa JSON non valido in Rails
- 30. Converti DataTable in JSON con solo valore
hai mai avuto fortuna? –
Troll macchiato: https://github.com/mongodb/mongo-csharp-driver-jsondotnet/blob/master/src/MongoDB.Integrations.JsonDotNet/Converters/ObjectIdConverter.cs#L100 –