소개

1. Newtonsoft.Json 소개

Newtonsoft.Json(흔히 Json.NET이라고 부릅니다)은 .NET 생태계 오픈소스 JSON 직렬화/역직렬화 라이브러리입니다

  • 2006년 첫 버전 Json.NET 1.0.1이 출시되었으며 현재 주 버전은 10 이상입니다
  • 초기 .NET 2.0을 지원했고 거의 모든 .NET 프레임워크(Framework/.NET Core/.NET 5+)와 호환됩니다
  • 어셈블리:Newtonsoft.Json.dll,NuGet으로 설치해 사용합니다
  • 초기 소스코드는 CodePlex에 호스팅되었으며 현재 GitHub로 이전했고 많은 기업 프로젝트에서 활용 중입니다

2. JSON이란 무엇인가

JSON(JavaScript Object Notation)

  • 가볍고 언어 중립적인 데이터 교환 텍스트 형식으로 JavaScript 전용이 아닙니다
  • 핵심 구조:키‑값 쌍 key:value;객체 {},배열 [] 중첩을 지원
{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,"students":[{"name":"tom"},{"name":"bill"}]}Code language: C# (cs)

Ⅱ. 엔티티 클래스 정의(JSON 구조와 매칭)

Person.cs(학생 객체)
namespace NewtonsoftDemo
{
    public class Person
    {
        public string name { set; get; }
    }
}Code language: C# (cs)
WebInfo.cs(루트 객체)
namespace NewtonsoftDemo
{
    public class WebInfo
    {
        public string webname { set; get; }
        public string website { set; get; }
        public int age { set; get; }
        public Person[] students { set; get; }
    }
}Code language: C# (cs)

예시‑객체를 JSON으로 직렬화

protected void Page_Load(object sender, EventArgs e)
{
    // 1. 엔티티 인스턴스 생성 후 값 할당
    WebInfo webInfo = new WebInfo();
    webInfo.age = 4;
    webInfo.webname = "FoxDevelop";
    webInfo.website = "foxdevelop.com";
    webInfo.students = new Person[] 
    { 
        new Person { name = "TOM" },
        new Person { name = "JACK" } 
    };

    // 2. Newtonsoft.Json 저수준 코드:JsonWriter로 직렬화 수행
    StringWriter sw = new StringWriter();
    JsonWriter writer = new JsonWriter(sw);
    new JsonSerializer().Serialize(writer, webInfo);
    string json = sw.GetStringBuilder().ToString();
}Code language: C# (cs)

실무에서 자주 쓰이는 간략 코드

Newtonsoft.Json은 정적 유틸리티 메서드를 제공하므로 JsonWriter를 직접 만들 필요가 없습니다:

// 한 줄로 직렬화, 개발 현장에서 가장 많이 사용
string json = JsonConvert.SerializeObject(webInfo);Code language: C# (cs)

출력 JSON 결과

{
  "webname": "FoxDevelop",
  "website": "foxdevelop.com",
  "age": "4",
  "students": [
    {"name":"TOM"},
    {"name":"JACK"}
  ]
}Code language: C# (cs)

기타

  • System.Text.Json:.NET Core 3.0부터 마이크로소프트 기본 제공 JSON 라이브러리;구 .NET Framework 프로젝트는 여전히 Newtonsoft.Json을 많이 사용합니다
  • 기능:속성 별칭, 필드 무시, 날짜 포맷팅, 순환 참조 처리 등 고급 기능 지원

소개

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다