【问题标题】:Array notation with Salesforce ApexSalesforce Apex 的数组表示法
【发布时间】:2015-03-19 21:56:01
【问题描述】:

在 Salesforce Apex 中,我正在尝试创建一个多维数组,以后可以将其序列化为 JSON。

在 PHP 中我会这样做:

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

但我似乎找不到使用 Apex 轻松做到这一点的方法...谁能指导我正确的方向?

【问题讨论】:

    标签: php arrays salesforce apex


    【解决方案1】:

    您可以在 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&lt;String, List&lt;String&gt;&gt;

    【讨论】:

    • 所以在我的例子中,我在顶点控制器中循环输入表单并编译这些数组。所以我需要能够基于标签添加键/值对。那么在给定参数字符串的情况下,我如何直接进入您提供的地图中的列表?
    【解决方案2】:

    使用以下代码后我得到了排序:

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

    感谢丹尼尔为我指明了正确的方向!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多