logo

C#에서 JSON 구문 분석

소개:

C#에서 JSON을 구문 분석하는 것은 JSON 데이터를 사용하는 애플리케이션을 구축하는 개발자의 일반적인 작업입니다. JSON은 자바스크립트 객체 표기법 일반 사용자가 읽고 쓰기에 최적이고 기계가 구문 분석하고 생성하기 쉬운 경량 데이터 표현 변경 형식입니다. 이 기사에서는 내장된 JSON을 사용하여 C#에서 JSON을 구문 분석하는 방법을 살펴보겠습니다. .NET JSON 파싱 ​​라이브러리.

C#에서 JSON 구문 분석은 다양한 방법으로 수행할 수 있습니다. Newtonsoft.Json 라이브러리 또는 System.Text.Json 라이브러리 에 소개 .NET 코어 3.0 . 두 라이브러리 모두 C#의 JSON 구문 분석에 널리 사용되며 비슷한 기능을 제공합니다.

방법 1: Newtonsoft.Json 패키지 사용

C#에서 JSON 구문 분석을 위한 가장 인기 있는 패키지 중 하나는 다음과 같습니다. 뉴턴소프트.Json . JSON 데이터를 직렬화 및 역직렬화하는 간단하고 유연한 방법을 제공하는 타사 패키지입니다.

사용 뉴턴소프트.Json C# 프로젝트에서는 먼저 설치해야 합니다. 다음을 통해 설치할 수 있습니다. NuGet 패키지 관리자 비주얼 스튜디오 또는 패키지 관리자 콘솔에서 다음 명령을 실행하여:

학교는 어떻게 발명됐나

암호:

 Install-Package Newtonsoft.Json 

일단 설치되면 코드에서 사용할 수 있습니다. 다음은 JSON을 구문 분석하는 방법의 예입니다. 뉴턴소프트.Json:

C# 코드:

 using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

이 예에서는 JSON 문자열을 정의하고 다음을 사용하여 역직렬화합니다. JsonConvert.DeserializeObject 에서 제공하는 방법 뉴턴소프트.Json . 이 메서드는 속성 구문을 사용하여 JSON 데이터에 액세스할 수 있는 동적 개체를 반환합니다.

표준 입력 C 프로그래밍

방법 2: System.Text.Json 네임스페이스 사용

로 시작 .NET 코어 3.0 그리고 .NET 5.0, C#에서는 다음과 같은 내장 JSON 구문 분석 라이브러리도 제공합니다. 시스템.텍스트.Json . 가볍고 빠른 JSON 직렬 변환기 및 역직렬 변환기입니다. .그물 실행 시간.

다음은 JSON을 구문 분석하는 방법의 예입니다. 시스템.텍스트.Json:

C# 코드:

 using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

이 예에서는 JsonDocument.Parse 에서 제공하는 방법 시스템.텍스트.Json JSON 문자열을 구문 분석합니다. 이 메서드는 Json문서 구문 분석된 JSON 데이터를 나타내는 객체입니다. 그런 다음 다음을 사용하여 JSON 데이터에 액세스할 수 있습니다. Json요소 수업과 그 속성 가져오기 방법.

방법 3: JavaScriptSerializer 클래스 사용

C#에서 JSON을 구문 분석하는 또 다른 방법은 다음을 사용하는 것입니다. JavaScript직렬화기 수업의 일부인 수업 시스템.웹.확장 집회. 이 클래스는 에서 소개되었습니다. NET 프레임워크 3.5 JSON 데이터를 강력한 형식의 개체로 역직렬화하는 간단한 방법을 제공합니다.

사용하려면 JavaScript직렬화기 클래스를 사용하려면 역직렬화하려는 JSON 개체를 나타내는 클래스를 만들어야 합니다. 클래스에는 JSON 개체 속성의 이름 및 데이터 유형과 일치하는 속성이 있어야 합니다. 예를 들어 아래 JSON 개체가 있다고 가정합니다.

우편 주문 순회

JSON 객체:

 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

다음과 같이 이 개체를 나타내는 클래스를 만들 수 있습니다.

C# 코드:

 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

클래스를 정의한 후에는 다음을 사용할 수 있습니다. JavaScript직렬화기 클래스를 사용하여 JSON 데이터를 Person 클래스의 인스턴스로 역직렬화합니다.

C# 코드:

리눅스 디렉토리 이름 바꾸기
 string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json); 

위의 예에서는 먼저 JSON 데이터가 포함된 문자열을 정의했습니다. 그런 다음 우리는 JavaScript직렬화기 클래스를 사용하고 해당 Deserialize 메서드를 사용하여 JSON 데이터를 Person 클래스의 인스턴스로 구문 분석했습니다.

주목할 가치가 있는 것은 JavaScript직렬화기 클래스는 우리가 논의한 다른 두 가지 방법에 비해 제한이 있습니다. 예를 들어 null 값 처리, camelCase와 PascalCase 명명 규칙 간 변환 등 JSON의 고급 기능 중 일부를 지원하지 않습니다. 또한 JSON 배열 역직렬화를 기본적으로 지원하지 않습니다.

결론:

이 기사에서는 C#에서 JSON을 구문 분석하는 두 가지 방법을 살펴보았습니다. 뉴턴소프트.Json 도서관을 이용하고 시스템.텍스트.Json 도서관. 두 라이브러리 모두 강력한 JSON 구문 분석 기능을 제공하며 JSON 데이터를 사용하는 C# 애플리케이션을 구축하는 개발자가 널리 사용합니다.