使用Newtonsoft从Json字符串中选择值时保留尾随零



我有一个第三方api,我需要测试它,并需要确保返回的值与响应中发送的值完全相同。例如,如果一个数字返回为1.000,则它需要为1.000而不是1。

我尝试过将字符串响应反序列化为JObject,并将值选择到JToken中,但下面obj1.n2的值最终为1。我几乎想将特定路径上的原始值选择为字符串,而不考虑类型。

有没有办法使用Json。Net I可以从下面示例的字符串表示中选择obj1.n2,并保留后面的零?

例如:

{"obj1":[{"n1":"n〃;,"n2":1.000,"n3〃:真的},{"n1":"n〃;,"n2":10.000,"n3〃:虚假的}]}

因为C#十进制类型保留尾随零,所以您可以直接指示Json。Net将数字解析为小数而不是浮点。将FloatParseHandling设置为FloatParseHandling.Decimal,如下所示:

var json = @"{ ""obj1"": [{ ""n1"": ""n"", ""n2"": 1.000, ""n3"": true }, { ""n1"": ""n"", ""n2"": 10.000, ""n3"": false }] }";
var token = JsonConvert.DeserializeObject<JToken>(
json, 
new JsonSerializerSettings { FloatParseHandling = FloatParseHandling.Decimal });

token["obj1"][0]["n2"]现在将显示1.000而不是1

相关内容

  • 没有找到相关文章

最新更新