C#으로 JSON 역직렬화

Muhammad Zeeshan 2023년10월12일
C#으로 JSON 역직렬화

C#에서 역직렬화는 직렬화된 개체를 검색하여 메모리에 로드할 수 있음을 나타냅니다. 그런 다음 개체를 다시 사용할 수 있습니다. 마지막으로 객체의 속성 등을 설정하여 객체의 이전 상태를 되살립니다.

이 자습서에서는 C# 프로그래밍 언어를 사용하여 JSON 개체를 역직렬화하는 방법을 설명합니다.

C#으로 JSON 역직렬화

C# 프로그래밍 언어를 사용하여 JSON 개체를 역직렬화하는 예를 들어 보겠습니다. 아래 예제에서는 학생들의 데이터를 사용하여 C#으로 JSON을 역직렬화합니다. 그러나 먼저 다음 예제를 단계별로 살펴보겠습니다.

  • 시작하려면 다음 라이브러리를 가져와야 합니다.
    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Script.Serialization;
    using Newtonsoft.Json;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
  • 예를 들어 다음과 같이 StudentidStudentname과 같은 학생 정보를 보유할 Student 구조를 만들어야 합니다.
    public class Students {
      public List<studentinfo> MyStudents { get; set; }
    }
    public class studentinfo {
      public string Studentid { get; set; }
      public string Studentname { get; set; }
    }
    
  • 이제 JSON 목록을 만들고 임의의 학생 데이터를 사용하여 채웁니다.
    string json =
        @"{""MyStudents"":[
      {""Studentid"":""3227"",""Studentname"":""Muhammad Zeeshan""},
      {""Studentid"":""3256"",""Studentname"":""Haseeb Khan""},
      {""Studentid"":""3241"",""Studentname"":""Saad Ashrafi""},
      {""Studentid"":""3267"",""Studentname"":""Bawa Khan""}
    ]}";
    
  • 그런 다음 .Deserialize() 함수를 사용하여 목록을 역직렬화합니다.
    Students derializedStudent =
        new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Students>(json);
    
  • 마지막으로 foreach 루프를 사용하여 콘솔에 결과를 표시합니다.
    foreach (var item in derializedStudent.MyStudents) {
      Console.WriteLine("id: {0}, name: {1}", item.Studentid, item.Studentname);
    }
    

전체 소스 코드는 다음과 같습니다.

완전한 소스 코드

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeserializeJSONbyZeeshan {
  class Program {
    static void Main(string[] args) {
      string json =
          @"{""MyStudents"":[
                           {""Studentid"":""3227"",""Studentname"":""Muhammad Zeeshan""},
                           {""Studentid"":""3256"",""Studentname"":""Haseeb Khan""},
                           {""Studentid"":""3241"",""Studentname"":""Saad Ashrafi""},
                           {""Studentid"":""3267"",""Studentname"":""Bawa Khan""}
                       ]}";

      Students derializedStudent =
          new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Students>(json);

      foreach (var item in derializedStudent.MyStudents) {
        Console.WriteLine("id: {0}, name: {1}", item.Studentid, item.Studentname);
      }
    }
  }
}

public class Students {
  public List<studentinfo> MyStudents { get; set; }
}

public class studentinfo {
  public string Studentid { get; set; }
  public string Studentname { get; set; }
}

출력:

id: 3227, name: Muhammad Zeeshan
id: 3256, name: Haseeb Khan
id: 3241, name: Saad Ashrafi
id: 3267, name: Bawa Khan
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

관련 문장 - Csharp JSON