System.Text.Json.JsonException: JSON 値を変換できませんでした 質問する

System.Text.Json.JsonException: JSON 値を変換できませんでした 質問する

私は Ubuntu と dotnet 3.1 を使用して、vscode の c# 拡張機能を実行しています。

JSONファイルからリストを作成する必要があります。コントローラは、渡されるこのモデルリストを使用していくつかの計算を実行します。

ここに私のコードと私が受け取っているエラーを示します。

まず、モデルで属性が char だったためエラーが発生したと考えました。C# では、見たところ、char の二重引用符は解釈できず、一重引用符にする必要があります。削除に時間を浪費する前に、型宣言を文字列に変更しましたが、同じエラーが発生しました。

誰か助けてくれませんか?

エレベーターモデル

using System.Collections.Generic;

namespace Bla
{
    public class ElevadorModel
    {
        public int andar { get; set; }
        public string elevador { get; set; }
        public string turno { get; set; }
    }
}

プログラム.cs:

class Program
{
    static void Main(string[] args)
    {
        var path = "../input.json";

        string jsonString;
        
        ElevadorModel elevadoresModel = new ElevadorModel();

        jsonString = File.ReadAllText(path); //GetType().Name = String

        Console.WriteLine(jsonString); //WORKS           

        elevadoresModel = JsonSerializer.Deserialize<ElevadorModel>(jsonString);
    }

: : JSON:

ここに画像の説明を入力してください

ベストアンサー1

入力された json にはベース トークンとして配列がありますが、オブジェクトを期待しています。逆シリアル化をオブジェクトの配列に変更する必要があります。

var elevadoresModels = JsonSerializer.Deserialize<List<ElevadorModel>>(jsonString);
elevadoresModel = elavoresModels.First();

おすすめ記事