将字符串反序列化为双精度

时间:2019-12-06 04:53:53

标签: c# json.net

我有这个JSON:

{
   "price": "0.002200"
}

我想将price反序列化为两倍,但这是一个字符串。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

一个选择是创建代表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; }
}

答案 1 :(得分:1)

您只需创建一个类即可映射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软件包。