본문 바로가기
C++ 200제/코딩 IT 정보

C# Json 파싱 예제 - List에 클래스 객체 저장 (json to list object)

by vicddory 2019. 2. 5.

C# Json 파싱 예제 - List에 클래스 객체 저장 (json to list object)


기본적으로 C# Json 파싱은 단일 자료형 기반으로 운용하는 경우가 많습니다. 그래도 사용하다 보면 클래스 객체를 기준으로 Json에 데이터를 써야 할 경우도 생기죠. 이럴 때 매번 클래스 객체를 생성하여 반복문 등으로 삽입하기엔 귀찮은 점이 많습니다.


c# json 예제 json to listC# Json 파싱 예제 - List에 클래스 객체 저장 (json to list object)


그래서 아래와 같이 클래스 객체를 List에 담아 한 번에 Json으로 생성하는 것이 조금 더 수월합니다. 우선, Json에 추가할 public class를 하나 선언합니다.


1
2
3
4
5
6
public class data
{
    public int Id { get; set; }
    public int SSN { get; set; }
    public string Message { get; set; }
}
cs


그리고 실제로 사용을 해보죠.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static void Main(string[] args)
{
    List<data> _data = new List<data>();
 
    _data.Add(new data()
    {
        Id = 1,
        SSN = 2,
        Message = "A Message"
    });
 
    string json = JsonConvert.SerializeObject(
                    _data.ToArray(), Formatting.Indented);
 
    //write string to file
    System.IO.File.WriteAllText(@"C:\path.json", json);
}
cs


List 객체 _data를 생성하고 축약된 형태로 data 클래스 객체를 생성합니다.


C# Json 파싱 예제 - List에 클래스 객체 저장 (json to list object)C# Json 파싱 예제 - List에 클래스 객체 저장 (json to list object)


그리곤 ToArray() 함수를 이용해 Json으로 value를 넘기는 것이죠. 아주 간단합니다.


1
string SerializeObject(object value, Formatting formatting);
cs


참고로 위에서 사용한 Json 함수의 원형은 위와 같습니다. 


object 형으로 인자를 받기 때문에 어떤 클래스나 자료형도 다 받아들일 수 있죠.


C# Json 파싱 예제 - List에 클래스 객체 저장 (json to list object)

댓글