主要内容

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 并将其添加到 methods 类的 Person 代码块中:

    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

    该函数签名必须与 jsonencode 签名匹配,后者以类对象作为输入并返回 JSON 格式的字符串或字符向量。

  3. 显示自定义对象。

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

另请参阅