무효 클릭 IP 추적 중...
c#

[c#] json 파싱하는법

꼬예 2023. 2. 23.

이번 포스팅의 목표는 아래 리스트 안에 든 값을 json으로 파싱하는것이다.

json 예제

string jsonString = "[{\"Confidence\": 0.54,\"ClassNum\": 1}, {\"Confidence\": 0.82, \"ClassNum\": 0}]";

 

1. 클래스 생성(틀 만들기)

위 값을 추출하기 위해선 형태에 맞는 틀을 만들어 줘야한다.

우리는 그 틀을 클래스를 통해 만들거다.

class ClassificationResult
{
    public decimal Confidence { get; set; }
    public int ClassNum { get; set; }
}

클래스명은 자유롭게 생성해도 된지만 속성값(property)은 명칭을 일치시켜 줘야 한다.

(대문자, 소문자 조심)

뿐만 아니라 type도 맞춰줘야 에러가 발생하지 않는다.

 

[ic]jsonString[/ic]를 잘 보면 {Confidence, ClassNum} 객체가 모여 있는 리스트라 할 수 있다.

그렇기 때문에 [ic]List<ClassificationResult>[/ic]로 표현이 가능하다.

 

 [ic]List<ClassificationResult>[/ic] => 틀 완성

2. Deserialize(역직렬화) 시키기

[ic]JsonSerializer.Deserialize[/ic]를 통해 역직렬화시키면 틀에 맞춰 값이 할당된다.

using System.Text.Json;

string jsonString = "[{\"Confidence\": 0.54,\"ClassNum\": 1}, {\"Confidence\": 0.82, \"ClassNum\": 0}]";
List<ClassificationResult> Results = JsonSerializer.Deserialize<List<ClassificationResult>>(jsonString);

 

3. 값 확인

foreach (ClassificationResult item in Results)
{
    Console.WriteLine($"Confidence : {item.Confidence}");
    Console.WriteLine($"ClassNum : {item.ClassNum}");

};

//output
Confidence : 0.54
ClassNum : 1
Confidence : 0.82
ClassNum : 0

 

 

전체코드)

using System.Text.Json;

string jsonString = "[{\"Confidence\": 0.54,\"ClassNum\": 1}, {\"Confidence\": 0.82, \"ClassNum\": 0}]";


List<ClassificationResult> Results = JsonSerializer.Deserialize<List<ClassificationResult>>(jsonString);

foreach (ClassificationResult item in Results)
{
    Console.WriteLine($"Confidence : {item.Confidence}");
    Console.WriteLine($"ClassNum : {item.ClassNum}");

};


class ClassificationResult
{
    public decimal Confidence { get; set; }
    public int ClassNum { get; set; }
}

 

이 글과 읽으면 좋은글

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글