[ASP.NET] JObject, JArray, JProperty

Ceing·2025년 3월 18일
0

ASP.NET

목록 보기
12/13
post-thumbnail

JObject, JArray, JProperty

  • ASP.NET에서의 클라이언트에게 JSON 응답 시 필요한 객체들

  • JObject는 JSON 객체 자체를 정의하고, 내부 구성요소로서 JArray, JProperty가 존재

  • JArray는 배열이고 JProperty는 일반 데이터

  • JObject = JArray + JProperty

  • JSON은 결국 무조건 최종 모습이 JObject임

JObject

  • JSON 그 자체이므로 이 객체 생성 후 여기에 JProperty나 JArray를 추가해줄 수 있음
  • 이 객체가 JSON 문자열 규격 그 자체이므로 ajax에서 접근하는 스펙을 볼 때 이 구조를 잘 보자

실전 예제(프로시저 받아서 응답하기)

DbCommand cmd = webDB.GetStoredProcCommand("PROC_HELLO");
webDB.AddInParameter(cmd, "@VALUE1", DbType.Int16, 1);
webDB.AddInParameter(cmd, "@VALUE2", DbType.Int16, 2);
webDB.AddInParameter(cmd, "@VALUE3", DbType.Int16, 3);

DataSet dsData = webDB.ExecuteDataSet(cmd);
DataRow[] drData = dsData.Tables[0].Select();

JObject result = new JObject();
JArray jArray = new JArray();
JObject jObject = new JObject();
foreach(DataRow item in drData)
{
	jObject.Add(new JProperty("value1", "1000"));
    jObject.Add(new JProperty("value2", "2000"));
    jObject.Add(new JProperty("value3", "3000"));
    jArray.Add(jObject);
}

result.Add(jArray); //JProperty => JObject => JArray
result.Add(new JProperty("code", 200))
result.Add(new JProperty("msg", "OK"))

JArray

  • JArray는 JSON 데이터들을 배열로 묶기 위함임
  • 즉 JArray를 생성할 때 JProperty를 바로 다이렉트로 추가하면 배열 형태로 되므로 JProperty를 JObject로 묶은 후 JArray에 추가해야됨
  • 즉 JProperty => JArray 가 아닌 JProperty => JObject => JArray가 되어야됨

우리 프로젝트 기본적인 흐름

클라이언트: .aspx => ajax
서버: 프로시저 => JObject에 데이터들 바인딩 => JSON 문자열 완성 => ajax 요청에 응답

profile
이유에 대해 끊임없이 생각하고 고민하는 개발자

0개의 댓글