我有一个像这样的字符串:
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比示例中的复杂得多,并且我需要以正确的方式处理所有float值。
因此,使用Newtonsoft 3.5在没有科学的浮点值表示法的情况下获取JObject的正确方法是什么?