Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahsiri Tatasusunan Objek JSON dengan Struktur Tidak Padan Menggunakan Json.net?

Bagaimana untuk Menyahsiri Tatasusunan Objek JSON dengan Struktur Tidak Padan Menggunakan Json.net?

DDD
DDDasal
2025-01-05 08:28:38599semak imbas

How to Deserialize a JSON Object Array with Mismatched Structure Using Json.net?

Mensiri Tatasusunan Objek JSON dengan Json.net

Seseorang mungkin menghadapi situasi di mana struktur JSON yang dikehendaki berbeza sedikit daripada format yang dijangkakan. Isu ini timbul dalam kes khusus tatasusunan objek JSON, contohnya, seperti yang ditunjukkan di bawah:

[
   {
      "customer":{
         ...
      }
   },
   {
      "customer":{
         ...
      }
   }
]

Malangnya, Json.net menjangkakan struktur yang lebih konvensional seperti ini:

{
    "customer": {
        ...
    }
}

Oleh itu, bagaimanakah kita boleh mendamaikan ketidakkonsistenan ini?

Penyelesaian terletak pada mencipta model tersuai yang selaras dengan struktur JSON sebenar. Dengan mentakrifkan kelas seperti CustomerJson dan Customer, kami boleh memetakan sifat JSON ke medan tertentu:

public class CustomerJson
{
    [JsonProperty("customer")]
    public Customer Customer { get; set; }
}

public class Customer
{
    [JsonProperty("first_name")]
    public string Firstname { get; set; }

    [JsonProperty("last_name")]
    public string Lastname { get; set; }

    ...
}

Dengan model tersuai ini, kami boleh menyahsiri JSON yang disediakan dengan mudah menggunakan:

JsonConvert.DeserializeObject<List<CustomerJson>>(json);

Akhir sekali, untuk mendapatkan maklumat menyeluruh tentang pensirilan dan penyahsirilan JSON, rujuk dokumentasi rasmi.

Atas ialah kandungan terperinci Bagaimana untuk Menyahsiri Tatasusunan Objek JSON dengan Struktur Tidak Padan Menggunakan Json.net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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