exponenta event banner

Настройка кодирования JSON для классов MATLAB

В этом примере показано, как настроить jsonencode для определяемого пользователем класса MATLAB ®.

Этот класс 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. Отображение JSON-закодированного экземпляра Person.

    obj = Person('Luke',19);
    jsonencode(obj)
    
    ans =
    
        '{"Name":"Luke"}'
  2. Отображение частного свойства Age, настройка jsonencode путем добавления этой функции к methods блок:

    function json = jsonencode(obj)
        s = struct("Name", obj.Name, "Age", obj.Age);
        json = jsonencode(s);
    end
    

    Подпись функции должна соответствовать jsonencode сигнатура, которая принимает объект класса в качестве входных данных и возвращает строку или вектор символов в формате JSON.

  3. Отображение настраиваемого объекта.

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

См. также