Демистификация кода Salesforce Apex: преобразование строки в JSON

В Salesforce Apex преобразование строки в объект JSON является распространенным требованием при работе с внешними системами или обработке данных в различных форматах. В этой статье блога мы рассмотрим несколько способов выполнения этой задачи с использованием разговорного языка и попутно предоставим примеры кода.

Метод 1: использование метода JSON.deserializeUntyped
Метод JSON.deserializeUntyped позволяет преобразовать строку в нетипизированный объект JSON. Вот пример:

String jsonString = '[{"Name":"Camp1","Id":15442},{"Name":"www","Id":11020}]';
List<Object> jsonList = (List<Object>) JSON.deserializeUntyped(jsonString);

Метод 2: определение пользовательских классов
Вы можете создать собственные классы для представления структуры объекта JSON и десериализовать строку в экземпляры этих классов. Предположим, у нас есть класс MyObject:

public class MyObject {
    public String Name;
    public Integer Id;
}
String jsonString = '[{"Name":"Camp1","Id":15442},{"Name":"www","Id":11020}]';
List<MyObject> myObjects = (List<MyObject>) JSON.deserialize(jsonString, List<MyObject>.class);

.

Метод 3: использование метода JSON.deserializeStrict
Если вы хотите обеспечить строгую проверку типов во время десериализации, вы можете использовать метод JSON.deserializeStrict. Этот метод гарантирует, что строка JSON соответствует структуре, определенной целевым классом:

public class MyObject {
    public String Name;
    public Integer Id;
}
String jsonString = '[{"Name":"Camp1","Id":15442},{"Name":"www","Id":11020}]';
List<MyObject> myObjects = (List<MyObject>) JSON.deserializeStrict(jsonString, List<MyObject>.class);

Метод 4. Использование инструмента JSON2Apex
Salesforce предоставляет удобный инструмент JSON2Apex, который генерирует классы Apex на основе образца полезных данных JSON. Вы можете найти этот инструмент в консоли разработчика в меню «Файл». Получив сгенерированные классы, вы можете использовать метод JSON.deserialize для преобразования строки в экземпляры этих классов.

Преобразование строки в объект JSON в Salesforce Apex — распространенная задача, и существует несколько способов ее достижения. В этой статье мы рассмотрели четыре подхода: использование метода JSON.deserializeUntyped, определение пользовательских классов, использование метода JSON.deserializeStrict и использование инструмента JSON2Apex. У каждого метода есть свои преимущества и варианты использования, поэтому выберите тот, который лучше всего соответствует вашим конкретным требованиям.