JSON(JavaScript Object Notation)은 자바스크립트 객체의 표현 방식으로, 특히 웹 개발에서 매우 중요한 역할을 합니다. 이번 글에서는 JSON의 기본 개념부터 Delphi에서의 활용 방법까지 자세히 알아보겠습니다.
JSON의 기본 개념
JSON은 텍스트 기반의 데이터 교환 형식으로, 자바스크립트 객체를 표현하는 데 사용됩니다. XML과 비교했을 때 단순하고, 브라우저 기반의 애플리케이션에서 쉽게 파싱할 수 있으며, 다양한 프로그래밍 언어와의 호환성이 뛰어납니다.
JSON의 구조
JSON 데이터는 두 가지 주요 구조를 가집니다:
- 객체 (Object): 이름-값 쌍의 집합
{ "Name": "John", "Age": 30 }
- 배열 (Array): 값의 순서 있는 리스트
[ "Apple", "Banana", "Cherry" ]
Delphi에서의 JSON 처리
Delphi는 2010 버전부터 JSON을 지원하며, DBXJSON 유닛에 다양한 JSON 처리 클래스를 제공합니다.
Delphi의 JSON 클래스
Delphi에서 JSON 처리를 위해 제공되는 주요 클래스는 다음과 같습니다:
- TJSONValue: 모든 JSON 값의 기본 클래스
- TJSONTrue / TJSONFalse / TJSONNull: Boolean 및 Null 값 표현
- TJSONString: 문자열 값 표현
- TJSONNumber: 숫자 값 표현
- TJSONObject: JSON 객체 표현
- TJSONArray: JSON 배열 표현
JSON 객체 생성 및 조작
다음은 Delphi에서 JSON 객체를 생성하고 조작하는 예제입니다.
procedure CreateJSONObject;
var
jsonObj: TJSONObject;
begin
jsonObj := TJSONObject.Create;
try
jsonObj.AddPair('Name', 'Marco');
jsonObj.AddPair('Value', TJSONNumber.Create(100));
ShowMessage(jsonObj.ToString);
finally
jsonObj.Free;
end;
end;
이 코드는 Name과 Value라는 두 개의 필드를 가진 JSON 객체를 생성하고, 이를 문자열로 변환하여 메시지 박스로 표시합니다.
JSON 배열 생성 및 조작
JSON 배열을 생성하고 조작하는 방법도 간단합니다.
procedure CreateJSONArray;
var
jsonArray: TJSONArray;
begin
jsonArray := TJSONArray.Create;
try
jsonArray.Add(22);
jsonArray.Add('foo');
jsonArray.Add(TJSONTrue.Create);
ShowMessage(jsonArray.ToString);
finally
jsonArray.Free;
end;
end;
이 코드는 숫자, 문자열, Boolean 값을 포함한 JSON 배열을 생성하고, 이를 문자열로 변환하여 메시지 박스로 표시합니다.
JSON 데이터 파싱
JSON 문자열을 Delphi 객체로 파싱하는 방법도 지원됩니다.
procedure ParseJSON(const jsonString: string);
var
jsonValue: TJSONValue;
begin
jsonValue := TJSONObject.ParseJSONValue(jsonString);
try
if jsonValue is TJSONObject then
ShowMessage('Parsed JSON Object: ' + jsonValue.ToString)
else if jsonValue is TJSONArray then
ShowMessage('Parsed JSON Array: ' + jsonValue.ToString);
finally
jsonValue.Free;
end;
end;
이 코드는 JSON 문자열을 TJSONValue 객체로 파싱하고, 객체 또는 배열로 인식하여 메시지 박스로 표시합니다.
JSON을 이용한 실용적인 예제
Delphi 애플리케이션에서 JSON을 사용하여 RESTful API와 통신하는 예제를 살펴보겠습니다.
RESTful API와의 통신
Delphi에서는 REST 클라이언트를 사용하여 쉽게 JSON 데이터를 주고받을 수 있습니다. 다음은 RESTful API를 호출하고 JSON 응답을 처리하는 예제입니다.
procedure CallRESTAPI;
var
RESTClient: TRESTClient;
RESTRequest: TRESTRequest;
RESTResponse: TRESTResponse;
begin
RESTClient := TRESTClient.Create('http://api.example.com/data');
RESTRequest := TRESTRequest.Create(nil);
RESTResponse := TRESTResponse.Create(nil);
try
RESTRequest.Client := RESTClient;
RESTRequest.Response := RESTResponse;
RESTRequest.Execute;
if RESTResponse.StatusCode = 200 then
begin
ShowMessage('Response: ' + RESTResponse.Content);
// JSON 파싱
ParseJSON(RESTResponse.Content);
end
else
ShowMessage('Error: ' + RESTResponse.StatusText);
finally
RESTClient.Free;
RESTRequest.Free;
RESTResponse.Free;
end;
end;
이 코드는 특정 RESTful API를 호출하고, 응답을 JSON으로 파싱하여 처리합니다.
JSON 데이터를 사용한 TClientDataSet 채우기
응답받은 JSON 데이터를 TClientDataSet에 채워 데이터 그리드에 표시하는 방법도 있습니다.
procedure LoadJSONToClientDataSet(const jsonString: string; cds: TClientDataSet);
var
JSONAdapter: TCustomJSONDataSetAdapter;
begin
JSONAdapter := TCustomJSONDataSetAdapter.Create(nil);
try
JSONAdapter.Dataset := cds;
JSONAdapter.LoadFromJSON(jsonString);
cds.Open;
finally
JSONAdapter.Free;
end;
end;
이 코드는 JSON 문자열을 TClientDataSet에 로드하여 데이터 그리드에 표시합니다.
결론
Delphi에서 JSON을 사용하는 방법을 이해하면, 다양한 웹 서비스와 손쉽게 통신할 수 있습니다. JSON의 간단한 구조와 높은 호환성 덕분에 Delphi 애플리케이션에서 데이터를 쉽게 처리하고 전송할 수 있습니다. 이번 글에서는 JSON의 기본 개념부터 Delphi에서의 실용적인 활용 방법까지 살펴보았습니다. 이제 JSON을 활용하여 더 효율적인 애플리케이션을 개발해보세요.
'delphi' 카테고리의 다른 글
웹 페이지 요청 시 응답 헤더 처리 문제 해결 방법 (0) | 2024.08.07 |
---|---|
TWebBrowser에서 자바스크립트 실행 방법 (0) | 2024.08.07 |
문자열 목록에서 중복 제거를 위한 효과적인 방법 (0) | 2024.08.06 |
다중 파일 삭제 방법("*"문자를 이용한 효율적인 파일 정리) (0) | 2024.08.06 |
TComboBox의 항목 길이에 맞춘 가변 드롭다운 리스트 구현 방법 (0) | 2024.08.05 |