728x90

C#에서 JSON데이터를 다루기위해 JObject라는 클래스를 사용하였다.

 

ASP.NET MVC 프레임워크를 사용한다면, JsonResult와 ActionResult도 사용이 가능하다. 주로 컨트롤러의 메서드에서 jsonresult를 반환하여 클라이언트에게 json데이터를 전송할 때 사용한다.

 

MVC 패턴을 사용하기 위해서 아래 내용이 임포트 되어있어야 한다.

using
Microsoft.AspNetCore.Mvc;

 

JsonResult

 ASP.NET MVC에서 사용되는 클래스로, JSON 형식의 데이터를 반환하기 위해 사용 주로 컨트롤러의 액션 메서드에서 JsonResult를 반환하여 클라이언트에게 JSON 데이터를 전송할 수 있다.

using Microsoft.AspNetCore.Mvc;

public class MyController : Controller
{
    public JsonResult MyAction()
     {
     var data = new { name = "John", age = 30 };
     return Json(data);
     }
}

 

ActionResult

ActionResult는 ASP.NET MVC에서 액션 메서드의 결과를 나타내는 추상 클래스

ActionResult를 상속하여 다양한 종류의 결과를 반환한다. JsonResult은 ActionResult의 일종입니다.

JsonResult와 다른 점은 ActionResult는 다른 유형의 결과도 반환할 수 있으며, 예를 들어 ViewResult는 HTML 뷰를 반환하고, RedirectResult는 다른 URL로 리디렉션할 수 있다.

using Microsoft.AspNetCore.Mvc;

public class MyController : Controller
{
    public ActionResult MyAction()
     {
     var data = new { name = "John", age = 30 };
     return Json(data);
     // return View(); // HTML 뷰 반환
    // return RedirectToAction("Index", "Home"); // 다른 액션으로 리디렉션
     }
}

 

728x90

'C# asp.net' 카테고리의 다른 글

ASP.NET 웹 폼 특징  (1) 2024.01.03
C# DB 연결관련 메소드 정리  (0) 2023.08.01
C# Newtonsoft.Json, JObject  (0) 2023.06.26
C# namespace, using 사용법  (0) 2023.06.19
C# : Database 연동(SqlClient 사용)  (0) 2022.04.21
728x90

C#에서 JSON 형태로 데이터를 주고 받으려고 한다

 

Newtonsoft.json 추가하기

C# 파일에서 Nuget 패키지 관리에 들어가 json 데이터 통신이 가능한

Newtonsoft.json 을 추가한다. 설치가 안되어 있으면 설치를 진행한다.

 

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

 

JObject

JObject는 JSON 데이터를 나타내는 C# 클래스이다. JSON 문자열을 JObject로 변환하면 JSON 데이터를 C#에서 쉽게 다룰 수 있다

 

using Newtonsoft.Json.Linq;


string jsonString = "{ \"name\": \"John\", \"age\": 30 }";

JObject json = JObject.Parse(jsonString);

string name = (string)json["name"];
int age = (int)json["age"];

jsonString 객체에 json 형식의 예시 데이터를 저장한다.

 

JObject.Parse(JObject 클래스의 정적 멤버인 Parse 메서드)를 사용하여 문자열을 jobject 객체로 반환한다

이 때, jsonString 변수에 저장된 JSON 데이터가 파싱되어 json 객체에 할당된다.

 

이제 json객체를 사용하여 json["name"]; 와 같이 json데이터에 접근할 수 있다. 

 

JSON 객체의 키에 해당하는 값을 가져오기 위해 인덱서([])를 사용하며, 

해당 값은 필요한 형식으로 캐스팅하여 사용할 수 있다. 

 

 

JObject의 메서드들

 

해당 값은 필요한 형식으로 캐스팅하여 사용할 수 있다. 

JObject.ToString(): JObject를 문자열로 변환합니다.
기본적으로는 JSON 형식으로 출력됩니다.

JObject.Parse(jsonString)["propertyName"]:
JObject의 특정 속성에 접근할 때, 속성 이름을 인덱서로 사용하여 값을 가져올 수 있습니다.

JObject.ToString(Formatting formatting):
JObject를 지정된 형식으로 문자열로 변환합니다. Formatting 매개변수를 사용하여 들여쓰기, 줄 바꿈 등의 형식을 지정할 수 있습니다.

 

아래 사이트를 참고하면 좋을 것 같다

https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_Linq_JObject.htm

728x90

'C# asp.net' 카테고리의 다른 글

C# DB 연결관련 메소드 정리  (0) 2023.08.01
C# JsonResult, ActionResult  (0) 2023.06.26
C# namespace, using 사용법  (0) 2023.06.19
C# : Database 연동(SqlClient 사용)  (0) 2022.04.21
ASP.NET : ADO.NET이란  (0) 2022.04.21
728x90
네임 스페이스란

성격이나 하는 일에 따라 클래스, 메소드 등을 하나의 이름으로 묶어 두는 것

 

 

네임스페이스에는 다음과 같은 속성이 있습니다.
  • 대규모 코드 프로젝트를 구성합니다.
  • 연산자를 사용하여 구분됩니다 . .
  • using 지시문은 모든 클래스에 대해 네임스페이스 이름을 지정할 필요가 없습니다.
  • global 네임스페이스는 “루트” 네임스페이스입니다. global::System은 항상 .NET System 네임스페이스를 가리킵니다.

 

 네임 스페이스는 수 없이 많은 클래스들 간의 충돌을 방지하고자 사용합니다. 비슷한 의미와 역할을 하는 클래스들을 비롯한 개체들은 이름이 비슷하거나 똑같을 수도 있습니다.

특히 큰 프로젝트의 경우 여러 사람이 작업을 진행하게 되는데 이 경우 문제가 여러 곳에서 발생할 수도 있습니다. 그래서 이 네임 스페이스를 활용해 클래스들을 관리하고 사용합니다. c#의 .net 프레임 워크의 경우 무려 11,000여개의 클래스들이 존재함에 따라 네임 스페이스가 적극적으로 활용되고 있습니다.

 

 

네임스페이스 사용법 : using

namespace는 using 이라는 키워드를 통해 불러와서 사용할 수 있습니다.

네임스페이스에 정의 된 각 타입과 객체들을 참조할 수 있다.

using System;
using System.Data.Entity;
using System.IO; using System.Linq;
using System.Web;
using System.Web.Mvc;

 

System네임 스페이스를 using 키워드를 통해 추가해두면 네임 스페이스를 명시하지 않고도 System네임 스페이스에 포함되어 있는 클래스에 접근이 가능합니다.

 

 

 

참고

https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/types/namespaces

 

네임스페이스에서 형식 구성

네임스페이스가 관련 형식을 구성하는 데 어떻게 도움이 되는지 알아봅니다.

learn.microsoft.com

 

728x90

'C# asp.net' 카테고리의 다른 글

C# JsonResult, ActionResult  (0) 2023.06.26
C# Newtonsoft.Json, JObject  (0) 2023.06.26
C# : Database 연동(SqlClient 사용)  (0) 2022.04.21
ASP.NET : ADO.NET이란  (0) 2022.04.21
asp.net mvc : 로그인, 로그오프 구현하기  (0) 2022.04.13

+ Recent posts