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}'