我需要什么:
问题是什么? 当 Json 具有类似 {"foobar" : 0.0000000000000000001} 的属性时,它会被转换为数字,但随后转换为字符串,以科学记数法表示为 1E-19
有没有办法从 json 中读取数字作为字符串,或者稍后将这样的数字转换为完全相同的字符串,而不会有任何精度损失?精度不固定,json 中的数字可以出现在任何属性中。 使用 Newtonsoft 比 System.Text.Json 更可取(如果可能的话)
我已经尝试过
理想情况下,我想将像 {"foobar": 21.37} 这样的字符串转换为具有属性 foobar = "21.37" 的对象,以确保在数字/字符串之间转换后不会丢失任何精度
看来只要字段定义为字符串,Newtownsoft.Json就可以将其转换为字符串。
public class Foo
{
public string str;
}
var json = """{"str":0.0000000000000000001}""";
var foo = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine(foo.str);