Нотация массива с помощью Salesforce Apex

В Salesforce Apex я пытаюсь создать многомерный массив, который впоследствии можно сериализовать в JSON.

В PHP я бы сделал это так:

$form['fields'][$element[1]][$element[2]] = $data;

Но я не могу найти способ легко сделать это с Apex … кто-нибудь может направить меня в правильном направлении?

2

Решение

Вы можете иметь список списков в 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>> если вы хотите найти подсписки по ключу.

1

Другие решения

После того, как я использовал следующий код:

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);
}

Спасибо, что указал мне правильное направление, Даниэль!

1