[C# 문법] C# JSON 데이터 Serialize, DeSerialize 하기
- C#/C# 문법
- 2022. 5. 12. 21:29
목적
- C# 에서 Class 객체를 생성 후, 해당 데이터를 JSON 데이터로 Serialize 하고, 또 반대로 DeSerialzie 하도록 하는 방법에 대해서 예제 코드를 작성해 보도록 하겠습니다.
- C# 에서 JSON 다루는 패키지는 여러가지가 있지만, 여기서는
Newtonsoft.Json
NuGet Package 를 이용하여 프로그램 구현 하였습니다.
누겟 패키지 설치
- 다음과 같이
Newtonsoft.Json
누겟 패키지를 Visual Studio 에서 설치 진행 하였습니다.
예제 코드
- 그럼 간단히 예제 코드를 작성하여, Json 데이터 Serialize, DeSerialize 하는 방법에 대해서 알아 보겠습니다.
using JsonTest;
using Newtonsoft.Json;
var list = new List<Defect>()
{
new Defect() {DefectId = 1, ImageName = "1.jpg", OriginClassNo = "101"},
new Defect() {DefectId = 2, ImageName = "2.jpg", OriginClassNo = "102"},
new Defect() {DefectId = 3, ImageName = "3.jpg", OriginClassNo = "103"},
new Defect() {DefectId = 4, ImageName = "4.jpg", OriginClassNo = "104"},
new Defect() {DefectId = 5, ImageName = "5.jpg", OriginClassNo = "105"},
};
var waferList = new List<Wafer>()
{
new Wafer()
{
SlotNo = 1,
Defects = list
},
new Wafer()
{
SlotNo = 2,
Defects = list
}
};
// Json Serialize
string jsonString = JsonConvert.SerializeObject(waferList, Formatting.Indented);
// Json DeSerialize
var pObj = JsonConvert.DeserializeObject<List<Wafer>>(jsonString);
public class Wafer
{
public int SlotNo { get; set; }
public List<Defect> Defects { get; set; } = null!;
}
public class Defect
{
public int DefectId { get; set; }
public string ImageName { get; set; } = null!;
public string OriginClassNo { get; set; } = null!;
}
실행 결과
- 실행 결과, 다음과 같이 Serialize, DeSerialize 가 정상적으로 된 것을 확인할 수 있습니다.
[
{
"SlotNo": 1,
"Defects": [
{
"DefectId": 1,
"ImageName": "1.jpg",
"OriginClassNo": "101"
},
{
"DefectId": 2,
"ImageName": "2.jpg",
"OriginClassNo": "102"
},
{
"DefectId": 3,
"ImageName": "3.jpg",
"OriginClassNo": "103"
},
{
"DefectId": 4,
"ImageName": "4.jpg",
"OriginClassNo": "104"
},
{
"DefectId": 5,
"ImageName": "5.jpg",
"OriginClassNo": "105"
}
]
},
{
"SlotNo": 2,
"Defects": [
{
"DefectId": 1,
"ImageName": "1.jpg",
"OriginClassNo": "101"
},
{
"DefectId": 2,
"ImageName": "2.jpg",
"OriginClassNo": "102"
},
{
"DefectId": 3,
"ImageName": "3.jpg",
"OriginClassNo": "103"
},
{
"DefectId": 4,
"ImageName": "4.jpg",
"OriginClassNo": "104"
},
{
"DefectId": 5,
"ImageName": "5.jpg",
"OriginClassNo": "105"
}
]
}
]
1
2
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# MapSter] 순환참조 인 경우 맵핑하기 (0) | 2022.05.15 |
---|---|
[C# MapSter] 맵핑 객체 내부의 프로퍼티가 서로 다른 경우 (0) | 2022.05.15 |
[C# 동시성 프로그래밍] 완료한 작업 반환 (0) | 2022.05.12 |
[C#] C# Mapster 사용법 (0) | 2022.05.11 |
[C# 동시성 프로그래밍] - 일정 시간 동안 일시 정지 (0) | 2022.05.08 |
이 글을 공유하기