>  기사  >  백엔드 개발  >  C#의 JSON 파서

C#의 JSON 파서

PHPz
PHPz원래의
2024-09-03 15:33:30994검색

JSON(JavaScript Object Notation) 구문 분석은 언어 독립적이고 가벼운 데이터 교환 형식이며 자체 설명적이며 이해하기 쉽습니다. JSON 파서는 XML의 대안입니다. 구조적 텍스트 형식으로 개체를 나타내며 데이터는 키-값 쌍으로 저장됩니다. JSON 파일 이름의 확장자는 .json입니다. JSON 클래스를 사용하면 개체를 JSON 텍스트로 직렬화하고 JSON 텍스트를 개체로 역직렬화할 수 있습니다. UTF-8 지원 기능이 내장되어 있습니다.

구문:

JSON(JavaScript Object Notation)의 구문을 다음과 같이 살펴보겠습니다.

  • Jobject.Parse() 메소드는 객체 클래스 메소드로 JSON 문자열을 C#의 객체로 파싱하는데 사용됩니다. 키 값을 기반으로 문자열의 데이터를 구문 분석한 다음 키 값을 사용하여 데이터를 검색합니다. 구문 분석 방법의 구문은 다음과 같습니다.
Jobject.Parse(jsonStringName);
  • JSON 문자열을 구문 분석하는 또 다른 방법은 JsonConvert 클래스에 속하는 JsonConvert.DeserializeObject()를 사용하는 것입니다. 아래 구문을 살펴보겠습니다.
JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
  • JavaScriptSerialize()를 사용하여 JSON 문자열을 구문 분석합니다. De-serialize() 메서드. 이 메서드는 최신 버전의 .NET에만 적용됩니다. 아래 구문을 살펴보겠습니다
JavaScriptSerializer(). Deserialize<CustomClassName>(jsonString);

C#에서 JSON 파서는 어떻게 작동하나요?

JSON(JavaScript Object Notation)은 가벼운 데이터 교환 형식으로 사람이 쉽게 쓰고 읽을 수 있으며 기계가 구문 분석하고 생성합니다. 높은 성능과 적은 메모리 공간 할당을 제공합니다. JSON 문자열 형식으로 클라이언트 측에서 서버 측으로 데이터를 제공하는 타사 컨트롤이 많이 있으며, 데이터에 액세스하려면 JSON 문자열을 적합한 개체, Kendo UI 그리드와 같은 타사 컨트롤로 캐스팅하는 것이 필수적입니다. 등. 여기에는 UTF-8 내장 지원이 있습니다.
Jobject.Parse() 메소드는 객체 클래스 메소드이며, 이 메소드는 JSON 문자열을 C#의 객체로 구문 분석하는 데 사용됩니다. 키 값을 기반으로 문자열의 데이터를 구문 분석하고 키 값을 사용하여 데이터를 검색합니다. 아래에서 JSON 구문 분석 형식과 작업 흐름을 살펴보겠습니다.

{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
By using the JSON parsing method we can convert and retrieve as follows,
var getResult = JObject.Parse(jsonString);

이렇게 하면 데이터를 검색할 수 있습니다.

JSON 문자열을 구문 분석하는 또 다른 방법은 JsonConvert 클래스에 속하는 JsonConvert.DeserializeObject()를 사용하는 것입니다. JsonConvert.DeserializeObject()라는 메서드는 JSON 문자열을 C# 개체로 변환합니다. JSON 문자열은 해당 객체를 생성합니다. 이 방법에 사용되는 형식은 다음과 같습니다.

JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);

First_Name 및 Last_Name 속성을 사용하여 UserDetails라는 클래스를 생성하여 아래 표시된 JSON 형식으로 데이터를 입력하고 이 함수의 결과를 받습니다.

var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";

이런 식으로 데이터를 변환하려면,

var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);

JavaScriptSerialize()를 사용하여 JSON 문자열을 구문 분석합니다. De-serialize() 메서드는 이후 버전의 .NET에만 적용됩니다. 이 방법은 이전 버전에는 적용되지 않습니다. 이를 위해 처음 두 가지 방법을 사용하여 JSON 문자열을 C# 개체로 변환할 수 있습니다. 이 방법에 사용되는 형식은 다음과 같습니다.

JavaScriptSerializer().Deserialize<CustomClassName>(jsonString);
To create the class with UserDetails as follows,
class UserDetails
{
public string userName { get; set; }
public int userAge { get; set; }
}

JSON에서 C# 개체로 변환하기 위한 사용자 세부 정보를 다음과 같이 입력하려면

var input_json = @"{""name"":""Peter Paul"",""age"":49}";

다음과 같이 serializer() 메소드를 사용하여 json을 c# 객체로 변환하려면

var resultObject = new JavaScriptSerializer().Deserialize<UserDetails>(input_json);

.NET Framework는 DataContractJsonSerializer와 함께 사용하는 클래스를 사용하여 JSON으로 직렬화하고 역직렬화하는 클래스를 지원합니다. 아래 코드를 사용하면 JSON 개체를 역직렬화할 수 있습니다. 이 방법을 사용하려면 다음과 같은 몇 가지 절차를 수행해야 합니다.

애플리케이션에는 System.Runtime.Serialization 라이브러리에 대한 참조가 있어야 합니다.

전체 클래스에는 DataContract가 있어야 하며, 속성에는 DataMember 속성이 있어야 합니다.

[DataContract]
public class USerDetails
{
[DataMember]
public string First_Name {
get; set;
}
[DataMember]
public string Last_Name {
get; set;
}
}
  • 객체를 직렬화하려면 WriteObject 메서드를 사용하고 JSON 객체를 역직렬화하려면 ReadObject 메서드를 사용해야 합니다.
string get_json = "{ \"First_Name\":\"Smith\",\"LastName\":\"Rio\" }";

DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(USerDetails));

Json.NET은 작업 환경을 위한 최고의 프레임워크입니다. 그물. JSON에는 다음과 같은 많은 장점과 기능이 있습니다.

  • .NET 개체와 JSON 간의 JSON 직렬 변환기를 유연하게 변환합니다.
  • LINQ to JSON의 JSON을 수동으로 작성하고 읽는 작업이 있습니다
  • .NET보다 빠르게 작동하며 고성능 데이터를 포함하는 JSON 직렬 변환기가 내장되어 있습니다.
  • JSON을 읽고 들여쓰기가 쉽습니다.
  • JSON과 XML 간의 변환은 쉽습니다.

프로그램 #1

Jobject.Parse() 메소드는 객체 클래스 메소드로 JSON 문자열을 C#의 객체로 파싱하는데 사용됩니다. 키 값을 기반으로 문자열의 데이터를 구문 분석하고 키 값을 사용하여 데이터를 검색합니다. 아래에서 JSON 구문 분석 구현을 살펴보겠습니다.

using System;
using Newtonsoft.Json.Linq;
namespace JSONParsing
{
public class Parsing
{
public static void Main(string[] args)
{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
//Using the JSON-parse method here
var getResult = JObject.Parse(jsonString);
Console.WriteLine("\n\tUsing JSON-Parse Method");
Console.WriteLine(string.Concat("\n\tDisplaying User First and Last Name: ", getResult["user_FirstName"], " " + getResult["user_LastName"], "."));
}
}
}

출력:

C#의 JSON 파서

Program #2

To parse the JSON String using JsonConvert.DeserializeObject(), which belongs to the JsonConvert class, the method called JsonConvert.DeserializeObject() converts the JSON string to the C# object. The JSON string creates those objects.

using System;
using Newtonsoft.Json;
namespace JSONParse_Program
{
public class UserDetails
{
public string First_Name
{
get; set;
}
public string Last_Name
{
get; set;
}
}
public class Parsing
{
public static void Main(string[] args)
{
var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";
//Use of the method
var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);
Console.WriteLine("JSON-Parse Method\n");
Console.WriteLine(string.Concat("\nDisplaying First and Last Name, ", result.First_Name, " " + result.Last_Name, "."));
}
}
}

Output:

C#의 JSON 파서

Conclusion

In this article, I have explained the usage of JSON parser; for example, by using those methods, we can parse the JSON in the C# program and extract values.

위 내용은 C#의 JSON 파서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.