簡體   English   中英

JsonSerializer.Deserialize 無法推斷用法

[英]JsonSerializer.Deserialize can't inferred the usage

如果我只將字符串傳遞給該方法,VS2019 會給出無法推斷用法的錯誤。

如果我這樣寫

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

兩者都給出相同的錯誤。 因為字符串可以轉換為跨度。

但正如反序列化文檔中所述,非泛型類型應該可以工作。 但我在這里得到的是泛型類型。

Json 小提琴

我試圖谷歌但沒有導致任何結果。

在此處輸入圖像描述

您突出顯示的方法采用一個類型參數,即保存反序列化數據的 C# object 的類型。 您需要指定類型參數,或者使用將 object 類型作為第二個參數的重載:

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)
        {
            String json = "{ \"Enabled\" : true }";
            // Using 2 different overload to deserialize data.
            Data data = JsonSerializer.Deserialize<Data>(json);
            Console.WriteLine(data);
            var data2 = JsonSerializer.Deserialize(json, typeof(Data));
            Console.WriteLine(data2);
        }
    }
}

您沒有調用正確的方法,為了使用非通用方法,您需要在第二個參數中指定類型。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM