Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Berjaya Menyahseri JSON ke dalam Kelas C# POCO Menggunakan JsonConvert.DeserializeObject?

Bagaimana untuk Berjaya Menyahseri JSON ke dalam Kelas C# POCO Menggunakan JsonConvert.DeserializeObject?

Barbara Streisand
Lepaskan: 2025-01-15 11:42:43
asal
482 orang telah melayarinya

How to Successfully Deserialize JSON into a C# POCO Class Using JsonConvert.DeserializeObject?

Gunakan JsonConvert.DeserializeObject untuk menghuraikan JSON ke kelas C# POCO

Apabila menghadapi ralat (seperti "Tidak dapat menyahsiri..." pengecualian) apabila menyahsiri JSON kepada kelas C# POCO, adalah penting untuk memahami keperluan untuk penyahserikan yang berjaya.

Secara khusus, kaedah JsonConvert.DeserializeObject memerlukan JSON mematuhi struktur yang dijangkakan dan jenis data yang ditakrifkan dalam kelas POCO.

Menyelesaikan ralat

Kunci untuk menyelesaikan ralat ini terletak pada dua aspek:

  1. Istiharkan sifat senarai dengan betul: Pastikan respons JSON mengandungi tatasusunan objek untuk sifat yang diisytiharkan sebagai List<T> dalam kelas POCO. Contohnya:

    <code class="language-json"> {
       "username": "username",
       // ... 其他属性
       "accounts": [
         { "github": "github-username" },
         // ... 其他帐户
       ]
     }</code>
    Salin selepas log masuk

    Dalam kelas POCO, atribut Accounts hendaklah diisytiharkan sebagai:

    <code class="language-csharp"> [JsonProperty("accounts")]
     public List<Account> Accounts { get; set; }</code>
    Salin selepas log masuk
  2. Gunakan atribut JsonProperty: JsonProperty atribut memetakan nama atribut JSON kepada atribut kelas POCO yang sepadan. Secara lalai, nama sifat JSON adalah sensitif huruf besar dan sepadan dengan nama sifat C#. Untuk menyesuaikan pemetaan ini, gunakan atribut JsonProperty:

    <code class="language-csharp"> [JsonProperty("github")]
     public string GithubUsername { get; set; }</code>
    Salin selepas log masuk

Contoh

Berikut ialah contoh yang diperbetulkan:

<code class="language-csharp">public class User
{
    [JsonProperty("username")]
    public string Username { get; set; }
    // ... 其他属性
    [JsonProperty("accounts")]
    public List<Account> Accounts { get; set; }
}

public class Account
{
    [JsonProperty("github")]
    public string GithubUsername { get; set; }
}

// 反序列化代码
var json = @"{
  'username': 'jdoe',
  // ... 其他属性
  'accounts': [{ 'github': 'jdoe-github' }]
}";
var user = JsonConvert.DeserializeObject<User>(json);</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Berjaya Menyahseri JSON ke dalam Kelas C# POCO Menggunakan JsonConvert.DeserializeObject?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan