为 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并将其添加到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 格式的字符串或字符向量。显示自定义对象。
obj = Person('Luke',19); jsonencode(obj)ans = '{"Name":"Luke","Age":19}'