В Salesforce Apex я пытаюсь создать многомерный массив, который впоследствии можно сериализовать в JSON.
В PHP я бы сделал это так:
$form['fields'][$element[1]][$element[2]] = $data;
Но я не могу найти способ легко сделать это с Apex … кто-нибудь может направить меня в правильном направлении?
Вы можете иметь список списков в Apex. Это позволяет вам создавать неровные массивы (так как вы должны убедиться, что каждый подсписок имеет требуемый размер).
List<List<String>> fruit = new List<List<String>> {
new List<String>{'banana', 'apple', 'pear'},
new List<String>{'grape', 'tomato', 'orange'},
new List<String>{'peach', 'plum', 'strawberry'}
};
System.debug(fruit[1][2]);
Вы также можете рассмотреть Map<String, List<String>>
если вы хотите найти подсписки по ключу.
После того, как я использовал следующий код:
Map<String, Map <String, String>> fieldsMap = new Map<String, Map <String, String>>();
if(fieldsMap.containsKey(keyArray[1])){
fieldsMap.get(keyArray[1]).put(keyArray[2], m.get(key));
}
else {
Map<String,String> newMap = New Map<String,String>();
newMap.put(keyArray[2], m.get(key));
fieldsMap.put(keyArray[1], newMap);
}
Спасибо, что указал мне правильное направление, Даниэль!