Inline Maps

你还可以使用 {key:value} 表示法直接在表达式中表示映射。以下示例说明了如何执行此操作:

  • Java

  • Kotlin

// evaluates to a Java map containing the two entries
Map inventorInfo = (Map) parser.parseExpression("{name:'Nikola',dob:'10-July-1856'}").getValue(context);

Map mapOfMaps = (Map) parser.parseExpression("{name:{first:'Nikola',last:'Tesla'},dob:{day:10,month:'July',year:1856}}").getValue(context);
// evaluates to a Java map containing the two entries
val inventorInfo = parser.parseExpression("{name:'Nikola',dob:'10-July-1856'}").getValue(context) as Map<*, *>

val mapOfMaps = parser.parseExpression("{name:{first:'Nikola',last:'Tesla'},dob:{day:10,month:'July',year:1856}}").getValue(context) as Map<*, *>

{:} 本身表示一个空映射。出于性能原因,如果映射本身由固定文字或其他嵌套常量结构(列表或映射)组成,则创建一个常量映射来表示表达式(而不是在每次计算时构建一个新映射)。映射键的引用是可选的(除非该键包含句点(.))。上述示例不使用带引号的键。