C# JSON 파싱 직렬화/역직렬화 하는 방법 총정리!!
C# to Json,Json to C# 등등 실무에 많이 쓰이는 json 파싱 방법에 대해 알아보겠습니다.!!!
JSON 이란?
- JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식
- Javascript에서 객체를 만들 때 사용하는 표현식을 의미
- JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용
- JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순한 데이터 표시방법.
JSON 문법
{
"employees": [
{
"name": "Surim",
"lastName": "Son"
},
{
"name": "Someone",
"lastName": "Huh"
},
{
"name": "Someone else",
"lastName": "Kim"
}
]
}
- JSON 형식은 자바스크립트 객체와 마찬가지로 key / value가 존재할 수 있으며 key값이나 문자열은 항상 쌍따옴표를 이용하여 표기해야합니다.
1. C# Json 직렬화 역직렬화 방법
1. NuGet 설치 - Newtonsoft.JSON
설치 후 using 추가 필수 입니다!!
using Newtonsoft.Json;
2. 받아오는 Json 형식에 맞는 Class 생성
public class Employee
{
public string name { get; set; }
public string lastName { get; set; }
}
public class Root
{
public List<Employee> employees { get; set; }
}
테스트로 Json Class 변환 사이트에서 가져왔습니다.
해당 부분이 궁금하시다면 아래의 이전 글 참고바랍니다.!!
https://in4obank.tistory.com/4
[C#] Json Model 클래스 변환 사이트 (json to c#, java to json )등등
안녕하세요 ! 오늘은 실무 또는 테스트에 유용하게 쓰이는 Json Class 변환 사이트에 대해 소개하겠습니다. json 문자열을 c# 클래스로 변환할 뿐만 아니라 여러 기능도 제공하니 유용하게 쓰일거라
in4obank.tistory.com
3. JSON 직렬화/역직렬화 (Serialize/DeSerialize)
using System;
using Newtonsoft.Json;
using System.Collections.Generic;
public class Program
{
public class Employee
{
public string name { get; set; }
public string lastName { get; set; }
}
public class Root
{
public List<Employee> employees { get; set; }
}
public static void Main()
{
string jsonString = "{\"employees\":[{\"name\":\"Surim\",\"lastName\":\"Son\"},{\"name\":\"Someone\",\"lastName\":\"Huh\"},{\"name\":\"Someoneelse\",\"lastName\":\"Kim\"}]}";
Root rt = JsonConvert.DeserializeObject<Root>(jsonString);
Console.WriteLine("--역직렬화--");
foreach(Employee e in rt.employees)
{
Console.WriteLine(e.name);
Console.WriteLine(e.lastName);
}
Console.WriteLine("--직렬화--");
string serializeText = JsonConvert.SerializeObject(rt);
Console.WriteLine(serializeText);
}
}
4. 실행결과
api사용할때 get 해온 후 이후 과정은 다 비슷하거나 동일 하니 외워 두시면 반드시 유용할거라 생각됩니다.
감사합니다
반응형
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 웹 파일 MemoryStream/base64 변환 ,웹 파일 이미지 크기 변환 (Web File to Stream/base64/WebClient) (0) | 2023.06.26 |
---|---|
[C#] C# 웹 파일 다운로드 하는 방법 ( WebClient/Web File DownLoad) (0) | 2023.06.26 |
[C#] Json Model 클래스 변환 사이트 (json to c#, java to json )등등 (0) | 2023.06.24 |
[C#] C# 테스트용 JSON 만들기 ( C# dummy ) (0) | 2023.06.24 |
[C#/Winform] DataTable 행/열 추가,삭제 (0) | 2023.06.22 |