将字符串反序列化为双倍[重复]

Posted

技术标签:

【中文标题】将字符串反序列化为双倍[重复]【英文标题】:Deserialize string to double [duplicate] 【发布时间】:2019-12-06 04:53:53 【问题描述】:

我有这个 JSON:


   "price": "0.002200"

我想将 price 反序列化为双精度,但它是一个字符串。

我该怎么办?

【问题讨论】:

你试过了吗?反序列化为 public double price get; set; 属性已经可以正常工作,请参阅 dotnetfiddle.net/7bUCVL 【参考方案1】:

一种选择是创建代表 JSON 的类并反序列化为该类:

class Program

    static void Main(string[] args)
    
        var json = " \"price\": \"0.002200\" ";

        var data = JsonConvert.DeserializeObject<Data>(json);

        Console.WriteLine(data.Price);
    


class Data

    public double Price  get; set; 

【讨论】:

【参考方案2】:

您只需创建一个类来映射 JSON:

public class RootObject

    public double price  get; set; 

然后用JsonConvert.DeserializeObject反序列化:

JsonConvert.DeserializeObject<RootObject>(json)

完整计划:

using Newtonsoft.Json;

public class RootObject

    public double price  get; set; 


public class Program

    public static void Main()
    
        var json = @"""price"": ""0.002200""";

        var root = JsonConvert.DeserializeObject<RootObject>(json);

        Console.WriteLine(root.price);
        // 0.0022
       

注意:这假设您已安装 Newtonsoft.Json NuGet 包。

【讨论】:

以上是关于将字符串反序列化为双倍[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将json反序列化为键值对列表[重复]

在调用API后,将JSON对象反序列化为C#类[重复]。

如何将xml反序列化为对象[重复]

Jackson 将日期字符串反序列化为 Long

使用 Jackson 和 Spring 将 JavaScript 数组反序列化为 Java LinkedHashSet 不会删除重复项

将cXML反序列化为C#类