JsonSerializer.Deserialize无法推断出用法

问题描述 投票:0回答:2

如果仅将字符串传递给方法,则VS2019会给出无法推断用法的错误。

如果我这样写的话

JsonSerializer.Deserialize(text);
JsonSerializer.Deserialize(text.AsSpan());

两者都给出相同的错误。因为字符串可以转换为跨度。

但是正如Deserialize Documentation中所述,none泛型类型应该起作用。但是我要介绍的是通用类型。

Json Fiddle

我曾尝试用Google搜索,但未得到任何结果。

enter image description here

c# .net-core jsonserializer
2个回答
0
投票

您没有调用正确的方法,为了使用非通用方法,您需要在第二个参数中指定Type。

JsonSerializer.Deserialize(text, typeof(object));

0
投票

您需要为反序列化对象的类型指定type参数:

using System;
using System.Text.Json;

namespace ConsoleApp1
{
    class Data
    {
        public bool Enabled { get; set; }

        public override string ToString()
        {
            return Enabled.ToString();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Data data = JsonSerializer.Deserialize<Data>("{ \"Enabled\" : true }");
            Console.WriteLine(data);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.