内联地图

您还可以通过使用{key:value}表示法直接在表达式中表示地图。以下示例显示了如何这样做:

  • Java

  • Kotlin

// 评估为包含两个条目的Java地图
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);
// 评估为包含两个条目的Java地图
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<*, *>

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