J'ai une chaîne de caractères comme celle-ci :
var str = "{'data': {'someProperty': 0.00001}}";
Quand je l'analyse en JObject comme ceci
var jObject = JObject.Parse(str);
Mon jObject ressemble à ceci :
{"data": {"someProperty": 1E-05}}
Je dois me débarrasser de la notation scientifique pour que le JObject résultant ressemble au json original.
J'ai réussi à le faire en utilisant une version ultérieure de Newtonsoft.Json comme ça :
var serializer = new JsonSerializer { FloatParseHandling = FloatParseHandling.Decimal };
using (System.IO.TextReader tr = new System.IO.StringReader(str)
using (var jsonReader = new JsonTextReader(tr))
{
var jp = serializer.Deserialize(jsonReader);
var jObject = JObject.FromObject(jp);
}
Mais j'ai besoin d'obtenir le même résultat en utilisant Newtonsoft.Json version 3.5 qui ne possède pas de propriété FloatParseHandling. Je suppose que je dois implémenter un JsonConverter d'une manière ou d'une autre, mais je n'ai aucune idée de la manière de le faire, puisque mon json réel est beaucoup plus complexe que celui de l'exemple et que je dois gérer toutes les valeurs flottantes de la bonne manière.
Alors, quelle serait la bonne façon d'obtenir un JObject sans notation scientifique pour les valeurs flottantes en utilisant Newtonsoft 3.5 ?