Main Content

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
  1. Person의 JSON 인코딩 인스턴스를 표시합니다.

    obj = Person('Luke',19);
    jsonencode(obj)
    
    ans =
    
        '{"Name":"Luke"}'
  2. 프라이빗 속성 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 시그니처와 일치해야 합니다.

  3. 사용자 지정된 객체를 표시합니다.

    obj = Person('Luke',19);
    jsonencode(obj)
    
    ans =
    
        '{"Name":"Luke","Age":19}'

참고 항목