以速度将字符串转换为数组
Convert a string to array in velocity
我有一个速度变量,像这样:
$cur_record.getFieldValue("SelectRoles", $locale)
那应该是一个数组。如果我打印它的值,(只需将 $cur_record.getFieldValue("SelectRoles", $locale) 放在代码中)我得到:
["Accountant","Cashier"]
现在,我想迭代这 2 个值,Accountant 和 Cashier,但它似乎是一个字符串,而不是一个数组,我如何将它转换为一个数组以便我可以迭代它?..
我试过迭代它,但不起作用,像这样:
#foreach($bla_role in $cur_record.getFieldValue("SelectRoles", $locale))
$bla_role
#end
也试过取值,好像是数组一样,也不行:
$cur_record.getFieldValue("SelectRoles", $locale).get(0)
我试过将它设置为另一个变量,如下所示:
#set($roleval = $cur_record.getFieldValue("SelectRoles", $locale))
$roleval.get(0)
但它不起作用,但如果我设置一个字符串,当值被打印时(该值被硬编码),它确实起作用!,就像这样:
#set($roleval = ["Accountant","Cashier"])
$roleval.get(0)
我不知道我是否必须逃避某些东西,或者我错过了什么,有人可以帮助我吗?
谢谢!
您正在尝试解析之前序列化为字符串的字符串数组。
以下代码段使用 substring
、split
和 replace
字符串方法对其进行解析。
#set($roleval = '["Accountant","Cashier"]')
#set($rolevalLengthMinusOne = $roleval.length() - 1)
#set($roles = $roleval.substring(1, $rolevalLengthMinusOne).split(","))
#foreach($role in $roles)
<h1>$role.replace('"',"")</h1>
#end
起初我尝试使用 #evaluate
来解析它,但我最终使用了这些 String 方法。
我有一个速度变量,像这样: $cur_record.getFieldValue("SelectRoles", $locale) 那应该是一个数组。如果我打印它的值,(只需将 $cur_record.getFieldValue("SelectRoles", $locale) 放在代码中)我得到: ["Accountant","Cashier"]
现在,我想迭代这 2 个值,Accountant 和 Cashier,但它似乎是一个字符串,而不是一个数组,我如何将它转换为一个数组以便我可以迭代它?..
我试过迭代它,但不起作用,像这样:
#foreach($bla_role in $cur_record.getFieldValue("SelectRoles", $locale))
$bla_role
#end
也试过取值,好像是数组一样,也不行:
$cur_record.getFieldValue("SelectRoles", $locale).get(0)
我试过将它设置为另一个变量,如下所示:
#set($roleval = $cur_record.getFieldValue("SelectRoles", $locale))
$roleval.get(0)
但它不起作用,但如果我设置一个字符串,当值被打印时(该值被硬编码),它确实起作用!,就像这样:
#set($roleval = ["Accountant","Cashier"])
$roleval.get(0)
我不知道我是否必须逃避某些东西,或者我错过了什么,有人可以帮助我吗?
谢谢!
您正在尝试解析之前序列化为字符串的字符串数组。
以下代码段使用 substring
、split
和 replace
字符串方法对其进行解析。
#set($roleval = '["Accountant","Cashier"]')
#set($rolevalLengthMinusOne = $roleval.length() - 1)
#set($roles = $roleval.substring(1, $rolevalLengthMinusOne).split(","))
#foreach($role in $roles)
<h1>$role.replace('"',"")</h1>
#end
起初我尝试使用 #evaluate
来解析它,但我最终使用了这些 String 方法。