상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - C#에서 JSON 직렬화와 역직렬화는 어떻게 하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C 에서 JSON <a href='https://sangseek.com/sangseeks/직렬화/ko'>직렬화</a>와 역직렬화는 주로 `<a href='https://sangseek.com/sangseeks/System.Text.Json/ko'>System.Text.Json</a>` <a href='https://sangseek.com/sangseeks/네임/ko'>네임</a>스페이스 또는 `<a href='https://sangseek.com/sangseeks/Newtonsoft.Json/ko'>Newtonsoft.Json</a>` (Json.NET) 라이브러리를 사용하여 수행됩니다. 이 두 라이브러리는 JSON 데이터를 C 객체로 변환하거나, C 객체를 JSON 형식으로 변환하는 데 매우 유용합니다. 아래에서는 두 가지 방법에 대해 자세히 설명하겠습니다. 1. System.Text.Json 사용하기 `System.Text.Json`은 .NET Core 3.0 이상에서 기본적으로 제공되는 JSON 처리 라이브러리입니다. 이 라이브러리는 성능이 뛰어나고, 사용하기 간편합니다. 1.1 JSON 직렬화 직렬화는 C 객체를 JSON 문자열로 변환하는 과정입니다. `JsonSerializer` 클래스를 사용하여 직렬화를 수행할 수 있습니다. ```csharp using System; using System.Text.Json; public class Person { public string Name { get; set; } public int Age { get; set; } } class Program { <a href='https://sangseek.com/sangseeks/static/ko'>static</a> void Main() { Person person = new Person { Name = "Alice", Age = 30 }; // 직렬화 string jsonString = JsonSerializer.Serialize(person); Console.WriteLine(jsonString); // {"Name":"Alice","Age":30} } } ``` 1.2 JSON 역직렬화 역직렬화는 JSON 문자열을 C 객체로 변환하는 과정입니다. 역시 `JsonSerializer` 클래스를 사용합니다. ```csharp using System; using System.Text.Json; public class Person { public string Name { get; set; } public int Age { get; set; } } class Program { static void Main() { string jsonString = "{\"Name\":\"Alice\",\"Age\":30}"; // 역직렬화 Person person = JsonSerializer.Deserialize<Person>(jsonString); Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); // Name: Alice, Age: 30 } } ``` 2. Newtonsoft.Json (Json.NET) 사용하기 `Newtonsoft.Json`은 C 에서 가장 널리 사용되는 JSON 라이브러리 중 하나입니다. 이 라이브러리는 다양한 기능과 유연성을 제공합니다. 2.1 JSON 직렬화 `<a href='https://sangseek.com/sangseeks/JsonConvert/ko'>JsonConvert</a>` 클래스를 사용하여 C 객체를 JSON 문자열로 직렬화할 수 있습니다. ```csharp using System; using Newtonsoft.Json; public class Person { public string Name { get; set; } public int Age { get; set; } } class Program { static void Main() { Person person = new Person { Name = "Bob", Age = 25 }; // 직렬화 string jsonString = JsonConvert.SerializeObject(person); Console.WriteLine(jsonString); // {"Name":"Bob","Age":25} } } ``` 2.2 JSON 역직렬화 JSON 문자열을 C 객체로 변환하는 역직렬화도 `JsonConvert` 클래스를 통해 수행됩니다. ```csharp using System; using Newtonsoft.Json; public class Person { public string Name { get; set; } public int Age { get; set; } } class Program { static void Main() { string jsonString = "{\"Name\":\"Bob\",\"Age\":25}"; // 역직렬화 Person person = JsonConvert.DeserializeObject<Person>(jsonString); Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); // Name: Bob, Age: 25 } } ``` 3. JSON 직렬화 및 역직렬화 시 주의사항 - 속성 이름 : JSON의 속성 이름과 C 클래스의 속성 이름이 다를 경우, `JsonProperty` 특성을 사용하여 매핑할 수 있습니다. 예를 들어, `Newtonsoft.Json`에서는 다음과 같이 사용합니다. ```csharp using Newtonsoft.Json; public class Person { [JsonProperty("full_name")] public string Name { get; set; } [JsonProperty("years_old")] public int Age { get; set; } } ``` - null 값 처리 : 직렬화 시 null 값을 포함할지 여부를 설정할 수 있습니다. `System.Text.Json`에서는 `JsonSerializerOptions`를 사용하여 설정할 수 있습니다. ```csharp var options = new JsonSerializerOptions { DefaultIgnoreCondition = JsonIgnoreCondition.When<a href='https://sangseek.com/sangseeks/Writing/ko'>Writing</a>Null }; string jsonString = JsonSerializer.Serialize(person, options); ``` - 날짜 및 시간 형식 : 날짜 및 시간 형식은 JSON으로 직렬화할 때 특별한 주의가 필요합니다. `System.Text.Json`에서는 기본적으로 <a href='https://sangseek.com/sangseeks/ISO 8601/ko'>ISO 8601</a> 형식을 사용합니다. 결론 C 에서 JSON 직렬화와 역직렬화는 `System.Text.Json` 또는 `Newtonsoft.Json` 라이브러리를 사용하여 간편하게 수행할 수 있습니다. 각 라이브러리는 고유한 기능과 장점을 가지고 있으므로, 프로젝트의 요구 사항에 따라 적절한 라이브러리를 선택하여 사용하면 됩니다. JSON 데이터의 구조와 C 객체 간의 매핑을 잘 이해하고, 필요한 경우 적절한 특성을 사용하여 직렬화 및 역직렬화 작업을 수행하는 것이 중요합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기