MATLAB 클래스에 대한 JSON 인코딩 사용자 지정하기
이 예제에서는 사용자 정의 MATLAB® 클래스에 대한 jsonencode 함수를 사용자 지정하는 방법을 보여줍니다.
이 클래스 Person.m에는 퍼블릭 속성 Name과 프라이빗 속성 Age가 있습니다. 데이터 인코딩을 위해 jsonencode를 호출할 경우 이 함수는 퍼블릭 속성만 변환합니다.
classdef Person properties Name; end properties (Access = private) Age; end methods function obj = Person(name,age) obj.Name = name; obj.Age = age; end end end
Person의 JSON 인코딩 인스턴스를 표시합니다.obj = Person('Luke',19); jsonencode(obj)ans = '{"Name":"Luke"}'프라이빗 속성
Age를 표시하기 위해jsonencode를 사용자 지정하고 이를Person클래스의methods블록에 추가합니다.classdef Person properties Name; end properties (Access = private) Age; end methods function obj = Person(name,age) obj.Name = name; obj.Age = age; end end function json = jsonencode(obj, varargin) s = struct("Name", obj.Name, "Age", obj.Age); json = jsonencode(s, varargin{:}); end end
함수 시그니처는 클래스 객체를 입력값으로 받고 string형 또는 문자형 벡터를 JSON 형식으로 반환하는,
jsonencode시그니처와 일치해야 합니다.사용자 지정된 객체를 표시합니다.
obj = Person('Luke',19); jsonencode(obj)ans = '{"Name":"Luke","Age":19}'