>백엔드 개발 >C#.Net 튜토리얼 >C# JSON 개체 만들기

C# JSON 개체 만들기

WBOY
WBOY원래의
2024-09-03 15:31:12783검색

C#에서 JSON 개체를 만드는 방법을 논의하기 전에 먼저 JSON이 무엇인지부터 살펴보겠습니다. JSON은 JavaScript Object Notation을 의미합니다. 데이터를 교환하는 데 사용되는 매우 가벼운 텍스트 형식입니다. JSON은 객체, 배열, 문자열의 세 가지 스타일로 표현될 수 있습니다. 여기서는 JSON 객체에 대해 설명하겠습니다. JSON 객체는 "{"로 시작하고 "}"로 끝납니다. JSON 객체의 데이터는 키와 해당 값이 콜론 ":"으로 구분되고 각 키-값 쌍이 쉼표 ","로 구분되는 키-값 쌍으로 저장됩니다.

구문:

Newtonsoft 패키지를 사용하여 JSON을 생성하는 구문은 다음과 같습니다.

ClassName objectName = new ClassName();
string jsonStr = JsonConvert.SerializeObject(objectName);

설명: 위 구문에서는 먼저 데이터가 필요한 클래스의 객체를 JSON 형식으로 만든 다음 Newtonsoft 패키지의 JsonConvert.Serialize() 메서드를 사용하고 클래스 객체를 다음과 같이 전달했습니다. 객체의 데이터를 JSON 문자열로 변환한 후 JSON 문자열을 반환하는 이 메소드에 대한 매개변수입니다.

이후에는 아래 명령문을 사용하여 이 JSON 데이터를 파일에 저장할 수 있습니다.

using(var streamWriter = new StreamWriter(filePath, true))
{
streamWriter.WriteLine(jsonStr.ToString());
streamWriter.Close();
}

위 명령문에서는 'filePath' 위치로 지정된 파일에 JSON 데이터를 쓰기 위해 StreamWriter 객체를 생성했습니다. 그런 다음 이 개체의 도움으로 WriteLine() 메서드를 사용하여 JSON 데이터를 파일에 기록했습니다.

C#에서 JSON 개체를 어떻게 만들 수 있나요?

C#에서는 .NET 네이티브 라이브러리를 사용하거나 타사 패키지를 사용하는 등 다양한 방법으로 JSON 개체를 생성할 수 있습니다.

네이티브 .NET 라이브러리를 사용하여 JSON 개체를 생성하려면 시스템을 추가해야 합니다. ServiceModel.Web을 프로젝트에 대한 참조로 사용하면 개체를 JSON 데이터로 직렬화하고 JSON 데이터를 역직렬화하는 DataContractJsonSerializer라는 클래스가 포함된 코드에 System.Runtime.Serialization.Json 네임스페이스를 가져올 수 있습니다. 개체에.

이 외에도 타사 패키지를 사용하여 JSON으로 작업할 수 있습니다. Newtonsoft.Json 패키지와 같습니다. 이 패키지를 설치하고 프로젝트에 추가하려면 Visual Studio에서 다음 단계를 따라야 합니다.

  • 도구 >로 이동 NuGet 패키지 관리자 > 솔루션용 NuGet 패키지를 관리합니다.

C# JSON 개체 만들기

  • '찾아보기' 탭에서 'Newtonsoft.Json' 패키지를 검색하고 표시된 결과에서 선택한 다음 이 패키지를 추가할 프로젝트를 선택하세요.
  • 설치 버튼을 클릭하세요.

C# JSON 개체 만들기

이 단계를 수행한 후 프로젝트의 참조를 확인하면 "Newtonsoft.Json"이 추가됩니다.

이제 .NET 유형과 JSON 유형 간 변환을 위한 메서드를 제공하는 JsonConvert라는 클래스가 포함된 코드에서 Newtonsoft.Json 네임스페이스를 가져올 수 있습니다.

C# JSON 객체 생성 예시

.NET 네이티브 라이브러리를 사용하여 JSON 객체를 생성하는 예

예시 #1

코드:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
namespace ConsoleApp4
{
[DataContractAttribute]
public class Student
{
[DataMemberAttribute]
public int RollNo { get; set; }
[DataMemberAttribute]
public string FirstName { get; set; }
[DataMemberAttribute]
public string LastName { get; set; }
[DataMemberAttribute]
public string Address { get; set; }
[DataMemberAttribute]
public float TotalMarks { get; set; }
public Student(int RollNo, string FirstName, string LastName,
string Address, float TotalMarks)
{
this.RollNo = RollNo;
this.FirstName = FirstName;
this.LastName = LastName;
this.Address = Address;
this.TotalMarks = TotalMarks;
}
}
public class Program
{
public static void Main(string[] args)
{
string jsonStr;
Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800);
try
{
MemoryStream memoryStream = new MemoryStream();
//serializing object to JSON
DataContractJsonSerializer ser =
new DataContractJsonSerializer(student.GetType());
//writing JSON
ser.WriteObject(memoryStream, student);
memoryStream.Position = 0;
StreamReader streamReader = new StreamReader(memoryStream);
jsonStr = streamReader.ReadToEnd();
Console.WriteLine(jsonStr);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}

출력:

C# JSON 개체 만들기

예시 #2

.NET 네이티브 라이브러리를 사용하여 JSON 개체를 생성한 다음 StreamWriter를 사용하여 결과 JSON 데이터를 파일에 쓰는 예

코드:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
namespace ConsoleApp4
{
[DataContractAttribute]
public class Student
{
[DataMemberAttribute]
public int RollNo;
[DataMemberAttribute]
public string FirstName;
[DataMemberAttribute]
public string LastName;
[DataMemberAttribute]
public string Address;
[DataMemberAttribute]
public float TotalMarks;
public Student(int RollNo, string FirstName, string LastName,
string Address, float TotalMarks)
{
this.RollNo = RollNo;
this.FirstName = FirstName;
this.LastName = LastName;
this.Address = Address;
this.TotalMarks = TotalMarks;
}
}
public class Program
{
public static void Main(string[] args)
{
string jsonStr;
string filePath = @"E:\Content\student.json";
Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800);
try
{
MemoryStream memoryStream = new MemoryStream();
//serializing object to JSON
DataContractJsonSerializer ser =
new DataContractJsonSerializer(student.GetType());
//writing JSON
ser.WriteObject(memoryStream, student);
memoryStream.Position = 0;
StreamReader streamReader = new StreamReader(memoryStream);
jsonStr = streamReader.ReadToEnd();
//checking if the file already exists
if (File.Exists(filePath))
{
//deleting file if it exists
File.Delete(filePath);
}
//creating StreamWriter to write JSON data to file
using (StreamWriter streamWriter = new StreamWriter(filePath, true))
{
streamWriter.WriteLine(jsonStr.ToString());
streamWriter.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}

메모장에서 열린 Student.json 파일에서 위 프로그램의 출력 스크린샷을 아래에서 찾아보세요.

출력:

C# JSON 개체 만들기

예시 #3

Newtonsoft 패키지를 사용하여 JSON 객체를 생성하는 예

코드:

using System;
using Newtonsoft.Json;
namespace ConsoleApp4
{
public class Student
{
public int RollNo;
public string FirstName;
public string LastName;
public string Address;
public float TotalMarks;
public Student(int RollNo, string FirstName, string LastName,
string Address, float TotalMarks)
{
this.RollNo = RollNo;
this.FirstName = FirstName;
this.LastName = LastName;
this.Address = Address;
this.TotalMarks = TotalMarks;
}
}
public class Program
{
public static void Main(string[] args)
{
string jsonStr;
Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800);
try
{
//serializing student object to JSON string
jsonStr = JsonConvert.SerializeObject(student);
Console.WriteLine(jsonStr);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}

출력:

C# JSON 개체 만들기

결론

JSON 객체는 중괄호로 묶여 있으며 키-값 쌍을 포함합니다. 키와 해당 값은 콜론으로 구분됩니다. 여기서 키는 문자열이어야 하고 값은 유효한 데이터 유형이면 됩니다. JSON 개체의 각 키-값 쌍은 쉼표로 구분됩니다.

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

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