Network

[JSON] JSON 정의 및 사용 방법

0so0 2023. 8. 17. 07:00
728x90
반응형
SMALL

JSON의 정의와 간단한 사용법에 대한 정리(+C#으로 작성한 예제)

JSON

JavaScript Object Notation
데이터를 다른 플랫폼에서 해석 가능한 형식으로 전달할때 사용하는 경량의 DATA-교환 형식
주로 클라이언트<-> 서버간 HTTP 통신을 위해 사용

JSON 데이터 유형

  • String : 유니코드 문자열로 구성
{
  "Name": "0so0"
}
  • Numebr : 실수, 정수 
{
  "Index": 1,
  "Temperature" : 37.5,
}
  • Bool : true, false
{
  "Status" : true
}

JSON 형식

{
  "Visit list": [
	{
	  "Index": 1,
	  "Name": "0so0",
	  "Temperature" : 37.5,
	  "Status" : true
	},
	{
	  "Index": 1,
	  "Name": "John",
	  "Temperature" : 38.2,
	  "Status" : false
	}
  ]
}
  • Pair : key-value 형식의 쌍
"Index": 1,
"Name": "0so0",
"Temperature" : 37.5,
"Status" : true
  • Array : 순서가 지정된 배열로 문자열, 숫자, 객체, 배열, bool, null 유형으로 구성될 수 있음
"Visit list": [
  {...}, 
  {...}
]
  • Object : {} 사이에 삽입되어있는 한쌍의 값
{
  "Index": 1,
  "Name": "0so0",
  "Temperature" : 37.5,
  "Status" : true
}

.NET JSON 직렬화/역직렬화

microsoft 가이드

 

C# 으로 작성한 JSON 직렬화 예시 

using System;
using System.Text.Json;

namespace JsonSerializationExample
{
    class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // 객체 생성
            Person person = new Person
            {
                FirstName = "John",
                LastName = "Doe",
                Age = 30
            };

            // JSON 직렬화
            string jsonString = JsonSerializer.Serialize(person);
            Console.WriteLine(jsonString);
        }
    }
}

C# 으로 작성한 JSON 역직렬화 예시 

/ JSON 문자열
string json = "{\"FirstName\":\"Jane\",\"LastName\":\"Smith\",\"Age\":25}";

// JSON 역직렬화
Person deserializedPerson = JsonSerializer.Deserialize<Person>(json);
Console.WriteLine($"Name: {deserializedPerson.FirstName} {deserializedPerson.LastName}, Age: {deserializedPerson.Age}");
728x90
반응형
LIST

'Network' 카테고리의 다른 글

[Network] REST API  (0) 2023.09.20
[Network] 프로토콜 & IP  (0) 2023.09.06
[Network] TCP/UDP 특징  (0) 2023.07.03