У меня есть такая строка:
var str = "{'data': {'someProperty': 0.00001}}";
Когда я разбираю его в JObject вот так
var jObject = JObject.Parse(str);
Мой jObject выглядит так:
{"data": {"someProperty": 1E-05}}
Мне нужно избавиться от научной нотации, чтобы полученный JObject выглядел как оригинальный json.
Мне удалось сделать это, используя более позднюю версию Newtonsoft.Json:
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);
}
Но мне нужно добиться того же результата, используя Newtonsoft.Json версии 3.5, в которой нет свойства FloatParseHandling. Я предполагаю, что мне нужно каким-то образом реализовать JsonConverter, но я понятия не имею, как это сделать, поскольку мой реальный json намного сложнее, чем тот, что в примере, и мне нужно правильно обрабатывать все значения с плавающей запятой.
Итак, каким будет правильный способ получить JObject без экспоненциальной записи для значений с плавающей запятой с использованием Newtonsoft 3.5?